广告
返回顶部
首页 > 资讯 > 后端开发 > Python >@Autowired注解注入的xxxMapper报错问题及解决
  • 711
分享到

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

2024-04-02 19:04:59 711人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

目录@Autowired注解注入的xxxMapper报错项目场景问题描述解决方案分析@Autowired无法加载Mapper,报错404或者500@Autowired注解注入的xxx

@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包的下面。希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

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

本文链接: https://www.lsjlt.com/news/156536.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作