@Autowired注解注入的xxxMapper报错怎么办

发布时间:2022-03-04 14:09:20 作者:小新
来源:亿速云 阅读:222

这篇文章主要介绍了@Autowired注解注入的xxxMapper报错怎么办,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

@Autowired注解注入的xxxMapper报错

项目场景

Mybatis-Plus测试

问题描述

在Mybatis-Plus场景的测试中发现,通过@Autowired注解注入的userMapper会报错

@Autowired注解注入的xxxMapper报错怎么办

这是因为UserMapper 并不是一个可以创建出对象的一个类,而是一个接口。

@Autowired注解注入的xxxMapper报错怎么办

@Override
        public void run() {
            bytes = mmInStream.read(buffer);
            mHandler.obtainMessage(READ_DATA, bytes, -1, buffer).sendToTarget();
        }

解决方案

方案一:

通过添加@Repository注解。

@Autowired注解注入的xxxMapper报错怎么办

方案二:

在不使用@Repository注解的情况下,可以通过将@Autowired注解改为@Resource注解来实现注入。

@Autowired注解注入的xxxMapper报错怎么办

分析

因为没有实现接口所以@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这个接口的时候,包名是否是一致的

@Autowired注解注入的xxxMapper报错怎么办

是否在 private XXXMapper xxxmapper;上加入了Autowired。如果启动类无法启动显示,必须要加(request = false)

@Autowired注解注入的xxxMapper报错怎么办

启动类一定要不要放在java包下,要跟你的com.xxxx这个包下

@Autowired注解注入的xxxMapper报错怎么办

感谢你能够认真阅读完这篇文章,希望小编分享的“@Autowired注解注入的xxxMapper报错怎么办”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!

推荐阅读:
  1. Intellij IDEA如何去掉@Autowired注入警告
  2. Springboot @Autowired无法注入怎么办

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

@autowired

上一篇:Django的signal信号机制如何使用

下一篇:Android Studio真机无线连接USB设备调试运行的示例分析

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》