解決static類使用@Value獲取yml文件獲取不到的問題
更新時間:2024年09月19日 16:06:42 作者:只會看代碼的可達鴨
在靜態(tài)類中直接使用@Value注解無法獲取yml文件中的配置,解決方案是在工具類Utils中創(chuàng)建靜態(tài)的setter方法,并從外部類ServiceClass中調用這個方法來設置值,這種方法通過外部調用來間接設置靜態(tài)變量的值,從而成功讀取yml配置
static類使用@Value獲取yml文件獲取不到的問題
背景
要在static的類中訪問yml中的配置。
直接在靜態(tài)類中使用@Value是獲取不到配置
解決方案
通過再工具類內部構造靜態(tài)得setter方法,外部類進行調用。
1.yml定義
2.ServiceClass類,調用工具類的靜態(tài)方法
public class ServiceClass { @Value("${fileFormatConfig.picture}") private String PICTURE_FORMAT; @Value("${fileFormatConfig.video}") private String VIDEO_FORMAT; @Value("${fileFormatConfig.audio}") private String AUDIO_FORMAT; public void startDetection() { //調用靜態(tài)工具類 TestUtils.init(PICTURE_FORMAT, VIDEO_FORMAT, AUDIO_FORMAT); TestUtils.originalTextDetection(); } }
3.Utils工具類
public class TestUtils { private static String PICTURE_FORMAT; private static String VIDEO_FORMAT; private static String AUDIO_FORMAT; // 靜態(tài)setter,由外部類的某個方法(如@PostConstruct)調用 public static void init(String pictureFormat, String videoFormat, String audioFormat) { PICTURE_FORMAT = pictureFormat; VIDEO_FORMAT = videoFormat; AUDIO_FORMAT = audioFormat; } public static void originalTextDetection() { System.out.println(PICTURE_FORMAT); System.out.println(VIDEO_FORMAT); System.out.println(AUDIO_FORMAT); } }
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
ElasticSearch學習之ES Mapping實戰(zhàn)示例
這篇文章主要為大家介紹了ElasticSearch學習之ES Mapping實戰(zhàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-01-01SpringMVC4.3解析器HandlerMethodArgumentResolver接口源碼
這篇文章主要為大家介紹了SpringMVC4.3解析器HandlerMethodArgumentResolver接口源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-09-09詳解spring cloud使用Hystrix實現(xiàn)單個方法的fallback
本篇文章主要介紹了詳解spring cloud-使用Hystrix實現(xiàn)單個方法的fallback,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-01-01Spring?Boot整合?NoSQL?數(shù)據庫?Redis詳解
這篇文章主要為大家介紹了Spring?Boot整合?NoSQL?數(shù)據庫?Redis詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-09-09