spring bean依赖注入不成功的原因总结
- 类没有扫描到
启动类上的@SpringBootApplication注解默认扫描同包类以及子类,如果类不在这里面,就需要scanBasePackages属性指定。 - 类没有定义成组件
类是组件,它的属性才能被注入。 - 使用new来创建组件对象,而不是从spring容器中获取的,这种new出来的对象,它的属性是不会注入spring容器的bean的。
这种情况的现象就是,springboot项目启动正常不会报依赖注入的错误,使用idea查看spring容器中也有bean实例,但是项目运行到那个bean的方法时就会报空指针异常。
** 所以,一般从源头开始就要使用组件,因为不是组件的话,肯定属性是不能注入的。比如Controller层就是源头,它就必须是一个组件,如果它不是组件,后续方法的调用,bean都会注入不成功。**