解決static類(lèi)使用@Value獲取yml文件獲取不到的問(wèn)題
static類(lèi)使用@Value獲取yml文件獲取不到的問(wèn)題
背景
要在static的類(lèi)中訪(fǎng)問(wèn)yml中的配置。
直接在靜態(tài)類(lèi)中使用@Value是獲取不到配置
解決方案
通過(guò)再工具類(lèi)內(nèi)部構(gòu)造靜態(tài)得setter方法,外部類(lèi)進(jìn)行調(diào)用。
1.yml定義

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

