1.spring注入变量
正常情况下,使用spring注入变量,我们只需要使用@Value注解注入成员变量即可,如下图
2.spring注入静态变量 错误方式
如果我们按照正常的方式注入变量,即直接使用@Value注入到静态变量上面,如下图
这个时候,我实际注入到giftUrl的值是null,也就是说没有注入成功
3.spring注入静态变量 正确方式
我可以使用静态变量的set方法进行注入,如下图
这样的话,静态变量giftUrl就注入成功
4.原理说明
1.@Value注解生效是在spring初始化bean的时候,注入到属性上面去的。
2.static静态成员变量,在类加载的时候,就完成了初始化,如果在变量上面加上@Value注解,是不生效的
3.放在属性的set方法上面,这样就可以在类加载完成静态变量后,spring初始化bean的时候再次给静态变量赋值