记一次springboot使用mybatis生成的mapper在类中注入为空的情况。
该情况是使用网上@MapperScan(xxx.xxxx.xxx)后还是注入为空的情况。
情况如下:
情况一、
有A,B两个类;
其中A类中使用注解的方式引入了Mapper类;
![在这里插入图片描述](https://img-blog.csdnimg.cn/20191231160131525.png)
B类使用@Autowired注解的方式引入A类,
例如:@Autowired
A a;
B类执行到a.xxx();的时候就会抛异常,报a空指针异常,也就是a注解失败。
情况二
有A,B两个类;
其中A类中使用注解的方式引入了Mapper类;
![在这里插入图片描述](https://img-blog.csdnimg.cn/20191231160131525.png)
B类使用new对象的方式引入A类,
例如:A a = new A();
B类执行到a.xxx();的时候不会再抛空指针异常,
***但是执行到A类里面后,就会抛出Mapper对象空指针异常。(即A类中的Mapper对象注解失败)***
解决方案
A类:在类名上面使用@Service("类名") 例如@Service("a");
B类:使用注解的方式引入A类,例如:
@Autowired
A a;
这样B类中的A类能被自动注解了,A类中的Mapper也能被自动注解了