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