请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于@MapperScan和@Mapper注解

项目中我们使用@MapperScan注解将Mapper接口注册到spring容器,这样做的效果是不是等同于在Mapper接口上加@Mapper注解?我尝试取消MapperScan改用Mapper注解发现spring找不到Mapper接口这是为什么?

正在回答 回答被采纳积分+3

1回答

提问者 qq_慕先生9232500 2024-03-21 00:26:41

已经解决了

首先,@Mapper是属于mybatis的注解用于让mybatis识别到这是一个mapper接口并没有让spring容器实例化这个mapper的作用

其次,课程中的代码将启动类单独放在了config包下Mapper接口没有和它放在同一个包下,这样会使spring扫描不到Mapper接口无法实例化

而@MapperScan属于springboot的注解,能够让Spring扫描指定的包及其子包以查找并注册mybatis的Mapper接口,解决了以上两点问题

不过还是有一点疑问,在测试中我明明配置了componentscan而且也在mapper上加了repository注解但重启后spring还是扫描不到mapper接口,只有当我把mapper移到了config下和启动类放在一起再配合@mapper注解程序才正常

0 回复 有任何疑惑可以回复我~
  • 甲蛙 #1
    单独加@Mapper的我没用过,如果是spring没扫描到,你可以加@Component试试
    回复 有任何疑惑可以回复我~ 2024-03-27 15:43:59
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信