【全网最细】mybatis-plus的java.lang.IllegalStateException: Failed to load ApplicationCont问题解决方案
mybatisplus的自定义添加xml后,ApplicationCont无法启动问题出现情况(运行出错|失败):
情况1:手动添加了映射文件.xml,自己的路径配置有问题
mybatis-plus中,如果添加了自定义的xml文件,需要手动在yml文件中配置路径,**代表多个路径,*表示单个包下路径,classpath*表示多个包下搜索,如图
配置后,由于idea默认并没有对xml进行class加载,需要手动在pom的<build>中添加配置
项目所需mybatis-plus需要的依赖和xml加载依赖
在<dependencies>中添加
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.1</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.30</version>
<scope>runtime</scope>
</dependency>
在<build中>添加
<resources>
<resource>
<directory>src/main/java/</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
情况2:启动时未找到mapper接口
如创建UserMapper后,运行失败,需要在UserMapper中添加注解@Repository@Mapper,不需要在xxApplication启动类中加入@MapperScan("接口地址")
package com.atguigu.mybatisplus.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; import org.springframework.stereotype.Repository; @Repository @Mapper public interface UserMapper extends BaseMapper<User> { }
这样就可以在测试的时候直接使用@Autowired来激活UserMapper的对象了
情况3:mapper接口文件与xml文件命名问题
以上问题为所有解决方案,如出错请仔细检查自己的代码是否有问题。
注:在添加代码后,mapper接口和mapper.xml文件,需要查看target的class文件下是否加载了已经?如果未加载,每次修改后需要手动点击右边Maven按钮
以下为运行成功案例: