暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

SpringBoot中Static静态工具方法获取配置文件属性值

风尘博客 2019-06-25
4437

一、背景

SpringBoot中获取配置文件的配置很简单:

@Value("${qinNiuCloud.ACCESS_KEY}")
private String ACCESSKEY;

但是我们经常会写util
等类,里面的方法都是静态static
的,这种情况下我们就没法像普通方法一样获取到yml
的配置了,此时我们应该怎么获取呢?

例如:

@Value("${qinNiuCloud.ACCESS_KEY}")
private static String ACCESSKEY;

以上方法获取到的,始终是null,因为Spring
的自动注入是无法注入到静态类的。

二、解决方案

写了一个读取配置文件的类,例如:

@Configuration
public class QiNiuCloudConfiguration {

public static String accessKey;
@Value("${qinNiuCloud.ACCESS_KEY}")
private String tempAccessKey;
该注解是关键
@PostConstruct
public void setAccessKey() {
accessKey = this.tempAccessKey;
}
}

详细解释:

  1. 首先,一个非静态的变量tempAccessKey
    可以自动注入配置文件中qinNiuCloud.ACCESS_KEY
    的值;

  2. 使用@PostConstruct
    注解在服务器加载Servlet
    的时候运行init()
    方法,将读取来的配置信息的值的赋值到静态变量accessKey
    中。


文章转载自风尘博客,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论