关于@MapperScan和@Mapper注解
来源:4-13 集成Mybatis持久层框架

qq_慕先生9232500
2024-03-20
项目中我们使用@MapperScan注解将Mapper接口注册到spring容器,这样做的效果是不是等同于在Mapper接口上加@Mapper注解?我尝试取消MapperScan改用Mapper注解发现spring找不到Mapper接口这是为什么?
写回答
1回答
-
qq_慕先生9232500
提问者
2024-03-21
已经解决了
首先,@Mapper是属于mybatis的注解用于让mybatis识别到这是一个mapper接口并没有让spring容器实例化这个mapper的作用
其次,课程中的代码将启动类单独放在了config包下Mapper接口没有和它放在同一个包下,这样会使spring扫描不到Mapper接口无法实例化
而@MapperScan属于springboot的注解,能够让Spring扫描指定的包及其子包以查找并注册mybatis的Mapper接口,解决了以上两点问题
不过还是有一点疑问,在测试中我明明配置了componentscan而且也在mapper上加了repository注解但重启后spring还是扫描不到mapper接口,只有当我把mapper移到了config下和启动类放在一起再配合@mapper注解程序才正常
012024-03-27
相似问题