1.问题描述
我们在写springboot项目常常会见IDEA
报错Could not autowire. No beans of ‘XxxxxMapper’ type found.但是项目依然可以运行。
2.原因分析
spring中@controller,@service,@Repository,@component被Spring扫描并注入到容器中,其中@component是其他三个的元注解。
- @Repository在持久层
- @Service在服务层
- @Controller在控制层中
3.问题解决
两个方法:
第一种:直接在持久层接口加上注解@Repository
第二种:不用加注解,
spring配置文件中配置了MapperScannerConfigurer这个bean,它会扫描持久层接口创建实现类并交给spring管理。
接口上使用了@Mapper注解或者springboot中主类上使用了@MapperScan注解,和MapperScannerConfigurer作用一样。
但是第二种方案还是会爆红可以降低Autowired检测的级别
具体操作步骤可以参考:csdn链接地址