欢迎来到代码驿站!

JAVA代码

当前位置:首页 > 软件编程 > JAVA代码

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

时间:2022-11-01 09:19:38|栏目:JAVA代码|点击:

@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这个包下

在这里插入图片描述

上一篇:剑指Offer之Java算法习题精讲求和篇

栏    目:JAVA代码

下一篇:剑指Offer之Java算法习题精讲链表与数组专项训练

本文标题:@Autowired注解注入的xxxMapper报错问题及解决

本文地址:http://www.codeinn.net/misctech/217875.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有