Spring Boot中Mybatis框架使用@Autowired注解创建Mapper的对象为null的原因以及解决办法
这个bug是我最近用Spring Boot 写招聘网站时,在Service层使用 @Autowired 注解创建一个UserMapper
对象,在使用时,发现这个对象为null。
在页面:
在控制台:
解决办法:
在Controller中, 开始是使用的new 关键字 来创建的对象。与Service中的创建方式不同。
于是在Controller中同样使用 @Autowired 注解来创建Service对象。
提醒一点:在Controller中同样使用 @Autowired 注解来创建Service对象是时,只能将其创建为全局对象。
如下图:
至于为什么service注入得不到Mapper接口的实例化对象,后面再讨论。