1.問題
在SpringBoot中使用@value注解只能給普通變量注入值,不能直接給靜態(tài)變量賦值,直接給靜態(tài)變量賦值的話這些值會一直為null。
2.解決方案
若要給靜態(tài)變量賦值,可以使用set()方法,首先在對應(yīng)的類上加上@Component注解,在set方法上使用value注解(注意set方法不是靜態(tài)的,否則無法賦值),如下:
@Component
public class Datahub {
// Endpoint以Region: 華東1為例,其他Region請按實際情況填寫
private static String endpoint;
private static String accessId;
private static String accessKey;
// 創(chuàng)建DataHubClient實例
@Value("${endpoint}")
public void setEndpoint(String endpoint) {
Datahub.endpoint = endpoint;
}
@Value("${access_id}")
public void setAccessId(String accessId) {
Datahub.accessId = accessId;
}
@Value("${access_key}")
public void setAccessKey(String accessKey) {
Datahub.accessKey = accessKey;
}
public static String getTest(){
System.out.println("測試數(shù)據(jù):"+endpoint);
return null;
}
}