解决mapper无法自动装配,未找到‘userMapper‘类型的Bean报错问题
更新时间:2024年11月12日 09:33:49 作者:GooO_O
解决Spring Boot中Mapper无法自动装配的问题,可以通过在Mapper接口上添加@Repository注解来解决,@Mapper和@Repository虽然都可以将类注册为Bean,但@Mapper是MyBatis的注解,不需要在Spring中配置扫描地址,而@Repository是Spring的注解
mapper无法自动装配,未找到‘userMapper‘类型的Bean报错
解决办法
报错原因
因为@Mapper是属于mybatis,不需要在spring配置中设置扫描地址,通过mapper.xml里面的namespace属性对应相关的mapper类,spring将动态的生成Bean后注入到ServiceImpl中。
看了很多同学们的在设置改掉springbean自动装配的办法,但是仍报错。
可以选择在mapper interface上面,添加@Repository注解:
效果
@Mapper与@Repository的详细区别
@Mapper与@Repository的相同点
- 两个注解都可在dao/mapper层使用(用来标记持久层)
- 生成相应代理对象bean注入到spring容器中
@Mapper与@Repository的不同点
- @Mapper是mybatis的注解,可以单独使用,也允许存在在多个mapper文件,它不需要在Spring中配置扫描地址,通过xml里面的namespace里面的接口地址,生成Bean后注入到Service层中。
- @Repository是spring提供的注解,能够将该类注册成Bean。被依赖注入,但是使用该注解后,在启动类上要加@MapperScan来表名Mapper类的位置,否则扫描不到。但在idea中,使用@Repository可以消除在业务层中注入mapper对象时的错误。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
@PostConstruct在项目启动时被执行两次或多次的原因及分析
这篇文章主要介绍了@PostConstruct在项目启动时被执行两次或多次的原因及分析,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-08-08DTO 实现 service 和 controller 之间值传递的操作
这篇文章主要介绍了DTO 实现 service 和 controller 之间值传递的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2021-02-02如何动态改变Retrofit的base url和rest版本详解
这篇文章主要给大家介绍了关于如何动态改变Retrofit的base url和rest版本的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2018-09-09Spring Boot中WebMvcConfig配置详解及示例代码
WebMvcConfig是一个配置类,它继承了WebMvcConfigurationSupport,允许我们对SpringMVC进行更细粒度的控制,这篇文章主要给大家介绍了关于Spring Boot中WebMvcConfig配置详解及示例的相关资料,需要的朋友可以参考下2024-03-03
最新评论