springboot mybatisplus Test找不到mapper
时间: 2025-04-29 18:22:05 浏览: 26
### 解决Spring Boot与MyBatis Plus集成时测试中找不到Mapper的问题
#### 1. 配置文件设置
确保`application.yml`或`application.properties`中的配置正确无误。对于YAML格式的配置文件,应当包含如下内容:
```yaml
spring:
datasource:
url: jdbc:mysql://localhost:3306/your_database?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC
username: root
password: your_password
driver-class-name: com.mysql.cj.jdbc.Driver
mybatis-plus:
configuration:
cache-enabled: false
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
mapper-locations: classpath*:mapper/*.xml
```
上述配置指定了数据库连接信息以及MyBatis-Plus的相关属性,特别是`mapper-locations`用于指定映射文件的位置[^1]。
#### 2. Maven构建工具配置
在项目的POM文件内加入必要的插件支持XML资源加载:
```xml
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.yml</include>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
</build>
```
这段代码使得Maven能够识别并打包位于`src/main/resources/mapper`目录下的`.xml`文件到最终的JAR包中。
#### 3. Mapper接口扫描路径设定
通过添加`@MapperScan`注解于应用程序入口类上,可以明确告知框架去哪里寻找Mapper接口及其对应的XML文件:
```java
package cn.wbnull.springbootdemo;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@MapperScan("cn.wbnull.springbootdemo.mapper")
public class MybatisPlusApplication {
public static void main(String[] args) {
SpringApplication.run(MybatisPlusApplication.class, args);
}
}
```
这里设置了要扫描的Mapper接口所在的包名,从而让Spring自动装配这些Bean实例[^2]。
#### 4. 测试环境特殊处理
当运行单元测试时,默认情况下可能会忽略掉某些开发阶段才有的配置项。因此,在编写测试案例之前,建议创建专门针对测试场景的应用程序上下文配置文件(如`application-test.yml`),并将该文件放置于`src/test/resources`下。同时,在启动测试前需激活此profile:
```bash
-Dspring.profiles.active=test
```
另外一种方式是在测试类上方加上`@ActiveProfiles("test")`注释来达到相同效果[^4]。
#### 5. 调试技巧
如果仍然遇到问题,则可以通过启用SQL日志打印功能来进行排查。修改`application.yml`内的相应选项即可开启详细的执行记录输出至控制台,便于观察实际发生的查询语句是否符合预期[^3]。
阅读全文
相关推荐


















