项目场景:
使用 mybatis + springboot 进行开发,执行时报找不到 dao 文件
问题解决步骤:
- 先将 dao.java 文件对应的目录放到扫包的路径下:
通常都是在 Application 文件中添加:
@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class,FlywayAutoConfiguration.class })
@MapperScan({"com.test.project.*.*.mapper", "com.test.project.stf.mapper", "com.test.project.report.dao"})
public class Application implements CommandLineRunner{
}
如上,在 @MapperScan 注解中添加 dao 文件对应的路径,这个路径是 java 下面类型为 interface 的 dao 文件的包路径。
package com.test.project.report.model;
public interface ReportDao {
/**
* 获取各个项目对应的总用例数
* @return
*/
List<ReportDto> selectProjectTotalCase(@Param("projectIds") List<Integer> projectIds);
}
- 将 dao.xml 文件添加到扫包路径下:
通常都是在 application.yml 或 application.properties 文件中添加:
# MyBatis
mybatis:
# 搜索指定包别名
typeAliasesPackage: com.test.project
# 配置mapper的扫描,找到所有的mapper.xml映射文件
mapperLocations: classpath:mybatis/**/*Mapper.xml,classpath:mybatis/**/*Dao.xml
# 加载全局的配置文件
configLocation: classpath:mybatis/mybatis-config.xml
再次运行,可以正常找到 dao 文件。