ayziba-&& 2024-04-24 14:29 采纳率: 30%
浏览 0
已结题

springboot

springboot mybatis 依赖,以下问题怎么解决
出现以下问题:
2024-04-24 14:08:23.896 WARN 29144 --- [ restartedMain] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'userInfoMyBatisController': Unsatisfied dependency expressed through field 'userInfoService'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'userInfoService' defined in file [D:\Javaenvironment\workspace\mngsys\target\classes\soft3\mngsys\service\UserInfoService.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [org/mybatis/spring/boot/autoconfigure/MybatisAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception; nested exception is org.springframework.core.NestedIOException: Failed to parse mapping resource: 'file [D:\Javaenvironment\workspace\mngsys\target\classes\mapping\UserInfoMapping.xml]'; nested exception is org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. The XML location is 'file [D:\Javaenvironment\workspace\mngsys\target\classes\mapping\UserInfoMapping.xml]'. Cause: org.apache.ibatis.builder.BuilderException: Error resolving class. Cause: org.apache.ibatis.type.TypeException: Could not resolve type alias 'UserInfo'. Cause: java.lang.ClassNotFoundException: Cannot find class: UserInfo

如下是这个项目主要代码
1.这是UserInfo类代码

package soft3.mngsys.model;

public class UserInfo {
    private Integer id;
    private String username;
    private String password;
    private String sex;
    private String nativeplace;
    private String hobby;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getNativeplace() {
        return nativeplace;
    }

    public void setNativeplace(String nativeplace) {
        this.nativeplace = nativeplace;
    }

    public String getHobby() {
        return hobby;
    }

    public void setHobby(String hobby) {
        this.hobby = hobby;
    }

    @Override
    public String toString() {
        return "UserInfo{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                ", sex='" + sex + '\'' +
                ", nativeplace='" + nativeplace + '\'' +
                ", hobby='" + hobby + '\'' +
                '}';
    }
}

2.这是mapper接口的代码

package soft3.mngsys.mapper;

import org.apache.ibatis.annotations.Mapper;
import soft3.mngsys.model.UserInfo;
//import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper          //表示该类是一个MyBatis
//
public interface UserInfoMapper {
    List<UserInfo> findUserInfoList();
}

3.这是Controller代码


package soft3.mngsys.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import soft3.mngsys.model.UserInfo;
import soft3.mngsys.service.UserInfoService;

import java.util.List;

@Controller
public class UserInfoMyBatisController {
    @Autowired
    private UserInfoService userInfoService;

    @ResponseBody
    @GetMapping("/MyBatis_userinfo_list")
    public List<UserInfo> MyBatisUserInfoList(Model model){
        List<UserInfo> userInfoList=userInfoService.findUserInfoList_Service();
        return userInfoList;
    }


    @GetMapping("/MyBatis_userinfo_list_page")
    public String MyBatisUserInfoPage(Model model){
        List<UserInfo> userInfoList=userInfoService.findUserInfoList_Service();
        model.addAttribute("Result",userInfoList);
        return "result";
    }


}

4.这是UserInfoService接口代码

package soft3.mngsys.service;

import org.apache.ibatis.annotations.Mapper;
import soft3.mngsys.model.UserInfo;

import java.util.List;
@Mapper
public interface UserInfoService {
    List<UserInfo> findUserInfoList_Service();
}

5.这是UserInfoServiceImpl 代码

package soft3.mngsys.service;


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import soft3.mngsys.mapper.UserInfoMapper;
import soft3.mngsys.model.UserInfo;

import javax.transaction.Transactional;
import java.util.List;

//@Service 注解是一种用于表经济服务层 Bean 的注解,将一个类声明为业务逻辑组件,并将其对象存入Spring容器中
@Service
@Transactional
public class UserInfoServiceImpl implements UserInfoService{
    @Autowired     //=new
    private UserInfoMapper userInfoMapper;

    @Override    //重写方法
    public List<UserInfo> findUserInfoList_Service(){
        return userInfoMapper.findUserInfoList();
    }

}

6.这是UserInfoMapping.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="soft3.mapper.UserInfoMapper">
    <select id="findUserInfoList" resultType="UserInfo">
        select * from userinfo
    </select>
</mapper>

7.这是pom.xml里面加的mybatis依赖代码

<dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.2</version>
        </dependency>

8.这是配置文件里加的代码(application.properties)

#配置MyBatis
#1.配置MyBatis的xml配置文件路径
mybatis.mapper-locations=classpath:mapping/*.xml
#2.配置xml映射文件中指定的实体类别名路径
mybatis.type-aliases-package=soft3.model
  • 写回答

4条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-04-24 14:29
    关注

    引自免费微信小程序:皆我百晓生

    根据您提供的信息,问题出在UserInfoMapping.xml文件中的resultType属性值与Java类路径不匹配。在XML中,您指定了resultType="UserInfo",但在应用上下文中,Spring Boot没有找到对应的全限定类名soft3.mngsys.model.UserInfo

    要解决这个问题,确保以下几个方面:

    1. 确保UserInfo类所在的包名正确无误。检查UserInfo.java文件顶部的包声明是否为:

      package soft3.mngsys.model;
      
    2. 检查application.propertiesmybatis.type-aliases-package设置是否正确指向了UserInfo类所在的包。确保这行配置看起来像这样:

      mybatis.type-aliases-package=soft3.mngsys.model
      
    3. UserInfoMapping.xml中,确认resultType的值正确引用了全限定类名。应该像这样:

      <select id="findUserInfoList" resultType="soft3.mngsys.model.UserInfo">
          select * from userinfo
      </select>
      
    4. 如果上述步骤都正确,那么可能是IDE的问题,尝试清理并重新构建项目。在IntelliJ IDEA中,可以执行 Build -> Rebuild Project,或者在Eclipse中执行 Project -> Clean...

    5. 最后,确保UserInfoMapper接口和实现类(例如UserInfoServiceImpl)已经正确地导入了UserInfo类,例如:

      import soft3.mngsys.model.UserInfo;
      

    完成这些步骤后,重新启动Spring Boot应用,错误应该会消失。如果问题依然存在,请检查是否存在其他潜在的包导入错误或者其他配置问题。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 5月2日
  • 已采纳回答 4月24日
  • 创建了问题 4月24日

悬赏问题

  • ¥15 校内二手商品转让网站
  • ¥20 高德地图聚合图层MarkerCluster聚合多个点,但是ClusterData只有其中部分数据,原因应该是有经纬度重合的地方点,现在我想让ClusterData显示所有点的信息,如何实现?
  • ¥100 求Web版SPC控制图程序包调式
  • ¥20 指导如何跑通以下两个Github代码
  • ¥15 大家知道这个后备文件怎么删吗,为啥这些文件我只看到一份,没有后备呀
  • ¥15 C++为什么这个代码没报错运行不出来啊
  • ¥15 一道ban了很多东西的pyjail题
  • ¥15 关于#r语言#的问题:如何将生成的四幅图排在一起,且对变量的赋值进行更改,让组合的图漂亮、美观@(相关搜索:森林图)
  • ¥15 C++识别堆叠物体异常
  • ¥15 微软硬件驱动认证账号申请