关于Mapper接口注入失败原因

本文探讨了一种在使用Maven分模块构建的SSM项目中,Mapper接口注入失败的情况。作者遇到的问题是尽管配置与以往项目相似,但依然收到接口注入失败的错误。经过排查,错误的原因在于Spring配置文件的命名错误,导致未进行Spring与Mybatis的整合,进而未能生成Mapper接口的动态代理对象,最终无法成功注入。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景:

  • 1、使用maven分模块构建SSM工程
  • 2、没有mybatis映射文件和核心配置文件
  • 3、(2)中的配置都在spring配置中

错误信息
在这里插入图片描述
文字说明:一直提示userMapper这个接口注入失败。

疑惑: 鄙人的配置跟视频一样,跟上一次项目配置也一样,为什么还报错?

怎么办?

问度娘:

  • 1、你web.xml中没有配置监听器加载spring配置文件

【有道理】。不加载spring配置文件,等于没有使用spring,而mybatis靠spring整合,所有mybatis也等于没效果

  • 2、你接口没有加@Mapper和@MapperScan注解

【有待审核,因为我没给mapper接口加注解也可以。】
听听看:
mybatis-config中只是会为对应的mapper创建代理类,而想真正包装成bean,注入到spring容器中,还是需要靠AutoConfiguredMapperScannerRegistrar,它会根据扫描@Mapper注释或是@MapperScan指定的包下的接口,将其注册为bean。

  • 3、你没有配置接口实现bean

这个是假答案。我spring帮我生成mapper接口的动态代理对象,我还配置个球

但是,这些“低级”错误,我都没犯,我不需要设置context-param全局参数,不需要加@Mapper和@MapperScan注解,也不需要什么配置mybatis映射文件和mybatis核心配置文件(因为我使用注解)。

是因为我犯了这个😭

!!!我给spring配置命名错误了!!!!!
在这里插入图片描述
来看看这个dao层的spring配置文件内容是什么:

在这里插入图片描述
你看:一、没有spring整合mybatis。二、没有生成mapper接口的动态代理对象

所以,怎么可能注入成功呢?

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值