加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 湛江站长网 (https://www.0759zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

@Autowired注解注入的xxxMapper报错问题及解决

发布时间:2021-11-07 15:39:34 所属栏目:教程 来源:互联网
导读:目录 @Autowired注解注入的xxxMapper报错项目场景问题描述解决方案分析@Autowired无法加载Mapper,报错404或者500 @Autowired注解注入的xxxMapper报错 项目场景 Mybatis-Plus测试 问题描述 在Mybatis-Plus场景的测试中发现,通过@Autowired注解注入的userMap
目录
@Autowired注解注入的xxxMapper报错项目场景问题描述解决方案分析@Autowired无法加载Mapper,报错404或者500
@Autowired注解注入的xxxMapper报错
项目场景
Mybatis-Plus测试
 
问题描述
在Mybatis-Plus场景的测试中发现,通过@Autowired注解注入的userMapper会报错
 
这是因为UserMapper 并不是一个可以创建出对象的一个类,而是一个接口。
@Override
        public void run() {
            bytes = mmInStream.read(buffer);
            mHandler.obtainMessage(READ_DATA, bytes, -1, buffer).sendToTarget();
        }
解决方案
方案一:
 
通过添加@Repository注解。
 
方案二:
 
在不使用@Repository注解的情况下,可以通过将@Autowired注解改为@Resource注解来实现注入。
 
分析
因为没有实现接口所以@Autowired会报错
 
1、@Autowired默认按照byType方式进行bean匹配,@Resource默认按照byName方式进行bean匹配
 
2、@Autowired是Spring的注解,@Resource是J2EE的注解,这个看一下导入注解的时候这两个注解的包名就一清二楚了
 
Spring属于第三方的,J2EE是Java自己的东西,因此,建议使用@Resource注解,以减少代码和Spring之间的耦合。
 
@Autowired无法加载Mapper,报错404或者500
当我一直在排错的时候,寻找注解少添加或者数据库无法拿到文件的时候,粗心大意蒙蔽了我。。
 
当@Autowired无法加载Mapper,报错404或者500的时候,要多关注以下几点
 
是否包名一致,加载Mapper这个接口的时候,包名是否是一致的
 
是否在 private XXXMapper xxxmapper;上加入了Autowired。如果启动类无法启动显示,必须要加(request = false)
 
启动类一定要不要放在java包下,要跟你的com.xxxx这个包下
 
以上是我个人总结踩坑,希望大家面对Bug的时候还是要多加细心,多半是因为粗心大意导致,要么就是没加注解,要么就是包名不一致,再或者就是启动类放在了Java包的下面。希望能给大家一个参考,也希望大家多多支持易采站长站。
@Autowired注解注入的xxxMapper报错问题及解决

(编辑:PHP编程网 - 湛江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!