本文共 732 字,大约阅读时间需要 2 分钟。
@Mapper和@Repository是常用的两个注解,两者都是用在dao层,两者功能差不多
区别:
@Repository需要在Spring中配置扫描地址,然后生成Dao层的Bean才能被注入到Service层中。如下,在启动类中配置扫描地址:@SpringBootApplication //添加启动类注解@MapperScan("com.xz.springboot.mapper") //配置mapper扫描地址public class application{ public static void main(String[] args) { SpringApplication.run(application.class,args); }}
@Mapper不需要配置扫描地址,通过xml里面的namespace里面的接口地址,生成了Bean后注入到Service层中。也就是@Repository多了一个配置扫描地址的步骤
补充:
如果在接口添加上@Mapper,然后再在 xml中的namespace指向mapper,那么spring就能动态生成一个Mapper的bean,然后你在serviceImpl中的 @Autowired pravate XXXMapper xxmapper; 就会被这个bean注进去。如果在Dao层中加了@Repository,那么在spring的扫包机制下,也会生成这个dao的bean,注入你serviceImpl中的
@Autowired private xxxDao xxxdao;最后,一般不用@Repository,在spring boot中通常用@Mapper
转载地址:http://urtii.baihongyu.com/