近期在做一个小东西的时候使用@VALUE注入一个静态变量,发现注入不进去。
现记录一下原因:
在spring里,我们不能@Autowired一个静态变量,使之成为一个spring bean,例如下面这样:
//不仅仅是Autowired
@Autowired
private static YourClass yourClass;
可以试一下,yourClass在这种状态下不能够被依赖注入,会抛出运行时异常java.lang.NullPointerException,为什么呢?
静态变量/类变量不是对象的属性,而是一个类的属性,而Spring则是基于对象的属性进行依赖注入的。