一、背景
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;
}
}
详细解释:
首先,一个非静态的变量
tempAccessKey
可以自动注入配置文件中qinNiuCloud.ACCESS_KEY
的值;使用
@PostConstruct
注解在服务器加载Servlet
的时候运行init()
方法,将读取来的配置信息的值的赋值到静态变量accessKey
中。
文章转载自风尘博客,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




