@Repository 与 @Mapper的区别——一看就会

Repository和Mapper的正确使用方式

在使用mybatis时,需要在mapper接口上加上@Repository 或者 @Mapper注解。看以往的代码,有时候2者同时出现,有时候只出现其中之一。现在分析一下使用规则:

1、只使用@Mapper

若dao层的mapper接口上仅仅只有一个@Mapper,它代表它标识的类是一个mybatis的一个mapper,在编译的时候动态生成一个代理类,并加入spring上下文中管理。

如果仅仅使用它是完全可行!!!

但是可惜的是idea会报红线,因为idea不认可它是一个bean,这就很难受了。
这时候只需要再在mapper接口上再继续加上@Repository就可以解决红线问题。

在这里插入图片描述

2、只使用@MapperScan

若在启动类上面直接使用@MapperScan可以对某个包下面的所有mapper接口都一次性扫描。这样就不需要每一个mapper接口上都加@Mapper注解。

如果仅仅使用它是完全可行!!!

但是可惜的是,idea依然会报红线。因为这样的bean不是显式的加入到上下文中,而是动态代理的时候加的。

3、解决红线问题

上面第一种情况和第二种情况,若在mapper接口上,加上@Repository注解,那idea就不变红了:
主要是@Repository的作用是以注解的形式声明一个bean,这样显性的让其交给spring上下文管理。

4、使用方法

若单独使用@MapperScan或者@Mapper,是完全可以的。
若想处理红线问题,可以使用@MapperScan@Repository,或者使用@Mapper@Repository的方式即可。


【总结】:根据经验,写代码过程中千万不要私自修改过往以前的代码!!!切记~~~


【完】



正在去往BAT的路上修行

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值