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的路上修行