1.问题
在SpringBoot中使用@value注解只能给普通变量注入值,不能直接给静态变量赋值,直接给静态变量赋值的话这些值会一直为null。
2.解决方案
若要给静态变量赋值,可以使用set()方法,首先在对应的类上加上@Component注解,在set方法上使用value注解(注意set方法不是静态的,否则无法赋值),如下:
@Component
public class Datahub {
// Endpoint以Region: 华东1为例,其他Region请按实际情况填写
private static String endpoint;
private static String accessId;
private static String accessKey;
// 创建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("测试数据:"+endpoint);
return null;
}
}
网友评论