SpringBoot中的Mapper注解和Repository注解

SpringBoot中的Mapper注解和Repository注解

从网络上找的答案:

如果在接口上@Mapper,然后再在 xml中的namespace指向mapper,那么spring就能动态生成一个Mapper的bean,然后你在serviceImpl中的

@Autowired

private XXXMapper xxmapper;

就会被这个bean注进去。

如果在DaoImpl中加了@Repository,那么在spring的扫包机制下,也会生成这个dao的bean,注入你serviceImpl中的

@Autowired

private xxxDao xxxdao;

中去。这个机制就像@controller,@Service什么的一样的。

自己测试:

当你只有Mapper的时候,IDEA会报错,显示无法自动装配,就是Autowired无效,但是运行的时候是可以运行的。

当你只有Repository的时候,在启动类中添加@MapperScan("xxxx.xxxx.dao")的自动扫描配置,也可以运行。

也就是说:

  • Mapper = 配置了自动扫描的Repository,单独有Mapper的时候,Autowired会报错,但可以运行
  • 想要把Mapper注入到Spring中:①使用Mapper②配置自动扫描的Repository

你可能感兴趣的:(SpringBoot中的Mapper注解和Repository注解)