@Value注解 ,不能給static靜態變量注入值。如下,ENV在使用的時候會顯示null。
@Value("${environment.variable}")
private static String ENV;
一般解決方案有兩種,一種是set方法賦值。另一種是使用@PostConstruct + 中轉變量初始化,先用 @Value 給中轉變量賦值,然后由中轉變量再賦值給static變量。
一:component注解一定要加。
@Component public class Test { public static String ENV; @Value("${env}") public static void setEnv(String env) { Test.ENV= env; } }
二: 兩個注解加上
@Component public class Test { public static String ENV; @Value("${env}") public String temp; @PostConstruct public void init() { ENV= temp; } }
