解決static類使用@Value獲取yml文件獲取不到的問題
更新時間:2024年09月19日 16:06:42 作者:只會看代碼的可達鴨
在靜態(tài)類中直接使用@Value注解無法獲取yml文件中的配置,解決方案是在工具類Utils中創(chuàng)建靜態(tài)的setter方法,并從外部類ServiceClass中調(diào)用這個方法來設(shè)置值,這種方法通過外部調(diào)用來間接設(shè)置靜態(tài)變量的值,從而成功讀取yml配置
static類使用@Value獲取yml文件獲取不到的問題
背景
要在static的類中訪問yml中的配置。
直接在靜態(tài)類中使用@Value是獲取不到配置
解決方案
通過再工具類內(nèi)部構(gòu)造靜態(tài)得setter方法,外部類進行調(diào)用。
1.yml定義

2.ServiceClass類,調(diào)用工具類的靜態(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() {
//調(diào)用靜態(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)調(diào)用
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);
}
}總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Spring?Boot?3.x?中?WebClient?示例詳解析
SpringBoot3.x中WebClient是響應(yīng)式HTTP客戶端,替代RestTemplate,支持異步非阻塞請求,涵蓋GET/POST/PUT/DELETE等方法,通過鏈式調(diào)用處理響應(yīng),需注意非阻塞I/O及超時、異常配置,本文給大家介紹SpringBoot3.x中WebClient示例,感興趣的朋友一起看看吧2025-07-07
SpringBoot2之PUT請求接收不了參數(shù)的解決方案
這篇文章主要介紹了SpringBoot2之PUT請求接收不了參數(shù)的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07
淺談web服務(wù)器項目中靜態(tài)請求和動態(tài)請求處理
這篇文章主要介紹了淺談web服務(wù)器項目中靜態(tài)請求和動態(tài)請求處理,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07
如何解決報錯:java.net.BindException:無法指定被請求的地址問題
在Linux虛擬機上安裝并啟動Tomcat時遇到啟動失敗的問題,通過檢查端口及配置文件未發(fā)現(xiàn)異常,后發(fā)現(xiàn)/etc/hosts文件中缺少localhost的映射,添加后重啟Tomcat成功,Tomcat啟動時會檢查localhost的IP映射,缺失或錯誤都可能導(dǎo)致啟動失敗2024-10-10
一個Java的main方法在JVM中的執(zhí)行流程示例詳解
main方法是Java程序的入口點,程序從這里開始執(zhí)行,這篇文章主要介紹了一個Java的main方法在JVM中執(zhí)行流程的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2025-09-09
淺析SpringBoot中使用thymeleaf找不到.HTML文件的原因
這篇文章主要介紹了SpringBoot中使用thymeleaf找不到.HTML文件的原因分析,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-07-07

