springboot——使用@Value给静态变量注入值

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gwd1154978352/article/details/89331831

在SpringBoot中使用@value注解只能给普通变量注入值,不能直接给静态变量赋值,直接给静态变量赋值的话这些值会一直为null。

解决方案:

若要给静态变量赋值,可以使用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;
    }
}
 

猜你喜欢

转载自blog.csdn.net/gwd1154978352/article/details/89331831