在使用Spring Boot的@Autowired时遇到过一个巨坑。
如果一个实例没有用@Autowired进行自动注入,则它下面的所有@Autowired都不会生效!!
比如在ClassA中有一个ClassB实例:
@Bean
public class ClassA{
//创建一个实例变量,并没有用@Autowired进行注入
private ClassB classB = new ClassBImpl();
//...
}
在ClassBImpl中,使用@Autowired进行注入的实例将全部报NullPointerException:
@Bean
public class ClassBImpl implements ClassB{
//这个自动注入将不会生效,userDao==null;
@Autowired
private UserDao userDao;
//...
}