最近在学习SSM框架的过程中, 总是遇到一个问题, @Autowired注解自动装配bean总是失败, 所注解的变量值总是为null, 后来通过网上查资料,发现原因如下:
使用了new实例化对象, 而new实例化出来的对象不是由spring bean容器进行管理, 从而导致spring 在自动扫描@Autowired注解时无法注入. 从另一个方面说, spring实现@Autowired注解自动装配时, @Autowired修饰的变量的bean, 以及@Autowired注解所在的类相应的bean, 都要在spring bean管理容器中.
spring的使用:注入与new
spring:最大特点就是注入。
在有spring存在的项目中,spring 的注入要统一使用,类的一步一步引用,要么为全部注入,要么都不注入。否则会出错。
比如:一个类A没有使用注入,只是用new创建了一个实例化的类B。则在B类中不能使用注入。否则会出错。因为被new实例化的类和spring实例化的类是不同的,在被new实例化的类中被注入的内容为空。