【全网最细】mybatis-plus的java.lang.IllegalStateException: Failed to load ApplicationCont问题解决方案

发布时间 2023-07-08 17:38:24作者: 会飞的纸飞机z

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按钮

 

 

以下为运行成功案例: