Loading

@Mapper和@Repository的区别与使用

本文根据文章:https://blog.csdn.net/m0_45210394/article/details/126223145 进行修改

@Mapper是mybatis的注解,标注在dao层接口上,可以通过动态代理生成接口的实例bean(编译之后能生成相应的接口实现类)

@Repository是spring的注解,也标注在dao层接口上,但是@Repository注解只是表明这个类具有对数据库CRUD的功能,想真正使用还得配合@Mapper或@MapperScan注解。如果不使用@Repository注解就会出现如下图所示的“注入”错误的提示(IDEA 会提示错误,但是不影响实际运行)

之所以出现上面这个错误是因为spring的自动扫描,而@Mapper不是spring的注解,所以有无法注入的提示。但是这个在实际运行中并无影响,因为有@Mapper或@MapperScan就可以生成bean。

项目中最好是分别在启动类和Mappr接口加上@MapperScan注解和@Repository注解的搭配使用,这样将会自动扫描所有mapper接口生成实现类,不需要为每个mapper接口单独加@Mapper注解,还能够消除“注入”的错误提示的作用

总结
1、@Repository是spring的注解,@Mapper是mybatis的注解。
2、@Repository与@Mapper都可以使用,二者可以同时出现,也可以单一使用。
3、单独使用@Repository,需要配合使用MapperScannerConfigurer或者@MapperScan注解。
4、单独使用@Mapper时,可能会在编辑器出现警告,不影响程序运行。可以配合使用@Repository消除警告。(也可以在编辑器中设置忽略这种警告)

作者:zoufh

出处:https://www.cnblogs.com/zoufh/p/17847257.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   爱睡懒觉的我  阅读(1140)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示
more_horiz
keyboard_arrow_up dark_mode palette
选择主题