1.@Repository的作用:
该注解的作用不只是将类识别为Bean,同时它还能将所标注的类中抛出的数据访问异常封装为 Spring 的数据访问异常类型。 Spring本身提供了一个丰富的并且是与具体的数据访问技术无关的数据访问异常结构,用于封装不同的持久层框架抛出的异常,使得异常独立于底层的框架。
2.使用场景
2.1使用@MapperScan(“com.zyp.mapper”)或者@Mapper注解修饰持久层时,借助@autowire注入持久层对象则报错,报错如图
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上