@Repository的作用以及和@Mapper(@MapperScan)的区别

1.@Repository的作用:

该注解的作用不只是将类识别为Bean,同时它还能将所标注的类中抛出的数据访问异常封装为 Spring 的数据访问异常类型。 Spring本身提供了一个丰富的并且是与具体的数据访问技术无关的数据访问异常结构,用于封装不同的持久层框架抛出的异常,使得异常独立于底层的框架。

2.使用场景

2.1使用@MapperScan(“com.zyp.mapper”)或者@Mapper注解修饰持久层时,借助@autowire注入持久层对象则报错,报错如图
使用@Mapper或者@MapperScan
2.2.解决方案
方案1.使用@Repository注解,效果如图
在这里插入图片描述方案2.使用idea的话,file-settings-editor-Inspections-spring-spring core-code,取消勾选第二个(idea是默认勾选的),取消勾选之后就不会提示报错了
在这里插入图片描述

3.区别

3.1.不同点
3.1.1.@Repository需要在Spring中配置扫描地址,然后生成Dao层的Bean才能被注入到Service层中。
3.1.2@Mapper不需要配置扫描地址,通过xml里面的namespace里面的接口地址,生成了Bean后注入到Service层中。
3.2相同点
两个都是注解在Dao上

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
@repository@Mapper是两种不同的注解,分别属于Spring和MyBatis框架。 @Repository注解是Spring框架提供的注解之一,用于标注持久层(DAO)组件,表示该类是用来访问数据库的。它可以与@Mapper注解一起使用,也可以单独使用。如果只使用@Repository注解,需要配合使用MapperScannerConfigurer或者@MapperScan注解来扫描并识别该bean。单独使用@Repository注解时,在编辑器中可能会出现警告,但不影响程序运行,可以忽略或通过编辑器设置忽略该警告。 @Mapper注解是MyBatis框架提供的注解,用于标注持久层的接口。在程序中,MyBatis需要找到对应的mapper,通过动态生成代理类来实现数据库查询功能。和@Repository注解一样,@Mapper注解也可以单独使用,但在使用时会在IDE中出现警告,提示找不到对应的bean。然而,这个警告不会影响程序的运行,可以直接忽略。为了消除此警告,可以在IDE设置中忽略该警告,或者在使用@Mapper的地方同时使用@Repository注解,这样Spring会扫描并识别该bean,就不会出现警告。 一般情况下,我们更常使用@Mapper注解,而不使用@Repository注解。要使用@Mapper注解,可以通过以下三种方式来注入接口的实现类: 1. 在Spring的配置文件中配置MapperScannerConfigure,它会扫描持久层接口并创建实现类,交给Spring来管理。 2. 在持久层接口上使用@Mapper注解。 3. 在Spring Boot的启动类上使用@MapperScan注解,起到和MapperScannerConfigure相同的作用。 综上所述,@repository@Mapper是分别属于Spring和MyBatis框架的注解,用于标注持久层组件和持久层接口。它们可以同时使用,也可以单独使用,具体使用哪个注解取决于具体的框架和需求。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [@Repository注解的作用和用法,以及和@Mapper区别](https://blog.csdn.net/fengling_smile/article/details/129853866)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值