springboot中使用tkMapper扫描不到mapper,报错java.lang.IllegalStateException: Failed to load ApplicationContext for [WebMergedContextConfiguration@6535117e testClass =xxx
本人很菜,也是第一次用tkmapper,一步一步跟着教程来
查了很多,网上说要注意的点也注意力
首先BaseMapper(通用)没有与其他mapper放在同一个包下
xmlmapper放在resources的mappers下
在springboot启动类上添加包扫描,确实是使用了tk包下的MapperScan
import tk.mybatis.spring.annotation.MapperScan;
@MapperScan(basePackages = "com.hong.trainingevaluator.mapper")
pom.xml依赖如下,mybatis使用的是
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.0</version>
</dependency>
tkmapper相关
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper</artifactId>
<version>4.1.5</version>
</dependency>
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>2.0.3</version>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</exclusion>
</exclusions>
</dependency>
application.yml
mybatis:
# 开启驼峰命名
configuration:
mapUnderscoreToCamelCase: true
mapperLocations: classpath:mapppers/*.xml
typeAliasesPackage: com.hong.trainingevaluator.entity
mapper-locations: classpath:mappers/*.xml
mapper:
mappers: com.hong.trainingevaluator.mappers
identity: MYSQL
这是我的目录结构

报错截取
java.lang.IllegalStateException: Failed to load ApplicationContext for [WebMergedContextConfiguration@6535117e testClass = com.hong.trainingevaluator.MapperTest, locations = [], classes = [com.hong.trainingevaluator.TrainingEvaluatorApplication], contextInitiali...
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'clazzMapper' defined in file [D:\Java\IDEA2021\project\training-evaluator\target\classes\com\hong\trainingevaluator\mapper\ClazzMapper.class]: Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required
....

关键是在这一步就开始报错了,mapper没有注册成功,如果改用@mapper 注解的话,那就跟普通的MapperScan 没有区别了
我这里没有用@Mapper ,在启动类添加tk包下的包扫描@MapperrScan
在测试类中,使用@Autowired 报错,说找不到,只能用@Resource
运行后直接报错,测试类的第一条语句都无法执行
所以就非常郁闷

欢迎大家讨论解答,万分感谢