需求:寫了一個工具類,可是工具類中的一些變量須要放到配置文件中,而這個工具類中的變量與方法都是靜態的,這個時候我須要一個辦法將配置文件中的相關配置讀取過來賦值給這些靜態變量。找了一些文章,試了一些方法,感受比較好用的是一下spring
個人工具類ClientUtil,setConfigInfo()方法用來供讀取配置文件的Config類調用來進行對靜態變量賦值:springboot
public class ClientUtil { private static String ENDPOINT; private static String ACCESS_KEY_ID; private static String ACCESS_KEY_SECRET;public static void setConfigInfo(TestConfig testConfig) { ClientUtil.ENDPOINT = testConfig.getEndpoint(); ClientUtil.ACCESS_KEY_ID = testConfig.getAccessKeyId(); ClientUtil.ACCESS_KEY_SECRET = testConfig.getAccessKeySecret(); }
..............(省略具體的業務靜態方法)................... }
配置文件的內容application.yml:服務器
test:
endpoint: http://oss-cn-hangzhou.aliyuncs.com
accessKeyId: test-key-id
accessKeySecret: test-key
專門寫了一個讀取配置文件的類TestConfig,使用@PostConstruct註解在服務器加載Servlet的時候運行init()方法,將讀取來的配置信息賦值到util的靜態變量中:app
@Configuration @Data public class TestConfig { @Value("${test.endpoint}") private String endpoint; @Value("${test.accessKeyId}") private String accessKeyId; @Value("${test.accessKeySecret}") private String accessKeySecret; @PostConstruct public void init(){ ClientUtil.setConfigInfo(this); } }
啓動springboot,調用該工具類發現靜態變量都已經讀取了配置文件中的值。工具