解决mapper自动装配识别不了,Could not autowire.No beans of‘UserMapper‘type found
作者:学习进行时!
文章介绍了在使用MyBatisX插件和MybatisPlus自动生成代码后,如何解决Spring Boot项目中自动注入`UserMapper`时报错的问题,主要方法包括在主配置类或启动类上添加`@MapperScan`注解,指定Mapper文件夹所在的包路径,以及在Mapper类上添加`@Repository`注解
mapper自动装配识别不了,Could not autowire.No beans of‘UserMapper‘type found
利用MyBatisX插件使用MybatisPlus生成代码后,使用自动注入时报错:
Could not autowire. No beans of ‘UserMapper’ type found
原因
Spring没有未找到相应的类
方法一:添加@MapperScan注解
在Spring Boot应用的主配置类或者主启动类上添加@MapperScan(“mapper文件夹所在包”)注解
让Spring能够在相应的包中扫描
@SpringBootApplication @MapperScan("com.example.Demo.mapper") public class MiaoshaApplication { public static void main(String[] args) { SpringApplication.run(MiaoshaApplication.class, args); } }
注:
- 首先确保路径没问题
- mapper文件无论在开发路径还是traget导出路径都是"com.example.Demo.mapper"的路径
方法二:添加@Repository
如果方法一使用完无效,这就是idea的问题了,运行是不会报错的,如果想去掉爆红,可以添加忽略提示Suppress,这个idea能Alt+Enter里有自动添加
但是我喜欢在Mapper类上加入@Repository,直接告诉idea识别。
@Repository public interface UserMapper extends BaseMapper<User> { }
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。