SpringCloud报这个错:Field paymentDao in com.lxz.springcloud.service.impl.PaymentServiceImpl required a bean of type ‘com.lxz.springcloud.dao.PaymentDao’ that could not be found.
意思是没有paymentDao这个Bean,导致Service层注入不了。
奇怪的是我的@Mapper注解明明加了。
而且检查pom.xml文件,mybatis也在:
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>${mybatis.spring.boot.version}</version>
</dependency>
最后检查配置文件,也没问题
mybatis:
mapperLocations: classpath:mapper/*.xml
type-aliases-package: com.lxz.springcloud.entities # 所有Entity别名类所在包
configuration:
use-generated-keys: true # 启用自动生成主键(id)
map-underscore-to-camel-case: true # 自动匹配数据库下划线命名和实体类驼峰命名
然后想难道是我Mapper.xml文件写错了?
去检查了一遍,并没有发现什么问题。
浏览器查说需要加@MapperScan(scanBasePackages = {“com.lxz.springcloud.dao”})来扫描包,然而我加上后报错并不能识别这个注解……然后直接在@SpringBootApplication注解上加的@SpringBootApplication(scanBasePackages = {“com.lxz.springcloud.dao”}),然后可以运行了,但是治标不治本,输入url后根本找不到路径。
折腾了一天时间,然后把mybatis依赖的版本从3.几换成1.3.1之后,不报错了,结果原来是版本不匹配问题,吐了