SpringBoot項(xiàng)目中通過(guò)@Value給參數(shù)賦值失敗的解決方案
項(xiàng)目場(chǎng)景:
springboot項(xiàng)目中通過(guò)@Value給屬性附值失敗
問(wèn)題描述
給參數(shù)賦值失敗,打印為空值
@Value("${python.server.port}") private int port; @Value("${python.server.host}") private String host; public PythonSocketClient(){ System.out.println("Host: " + host); System.out.println("Port: " + port); connect(); }
測(cè)試發(fā)現(xiàn)是成功注入的
@SpringBootTest public class ValueTest { @Value("${python.server.host}") private String host; @Test public void testConfiguration() { System.out.println("Host configured as: " + host); } }
可以看到是正確賦值了
原因分析:
這是因?yàn)樵?Spring Bean 的生命周期中,構(gòu)造函數(shù)是最先被調(diào)用的,此時(shí)依賴注入還沒(méi)有完成,因此 @Value 注入的字段尚未被初始化。
也就是說(shuō)還沒(méi)附上值就運(yùn)行了構(gòu)造器
解決方案:
使用 @PostConstruct 注解的方法來(lái)確保在所有字段注入完成之后再執(zhí)行初始化邏輯。
@Value("${python.server.port}") private int port; @Value("${python.server.host}") private String host; @PostConstruct public void init() { System.out.println("Host: " + host); System.out.println("Port: " + port); connect(); }
再次運(yùn)行
發(fā)現(xiàn)已經(jīng)可以正常獲取值了。
到此這篇關(guān)于SpringBoot項(xiàng)目中通過(guò)@Value給參數(shù)賦值失敗的解決方案的文章就介紹到這了,更多相關(guān)SpringBoot @Value賦值失敗內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
關(guān)于Jedis的用法以及Jedis使用Redis事務(wù)
這篇文章主要介紹了關(guān)于Jedis的用法以及Jedis使用Redis事務(wù)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03Java的無(wú)參構(gòu)造函數(shù)用法實(shí)例分析
這篇文章主要介紹了Java的無(wú)參構(gòu)造函數(shù)用法,結(jié)合實(shí)例形式分析了java無(wú)參構(gòu)造函數(shù)基本原理、用法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-09-09java volatile關(guān)鍵字使用方法及注意事項(xiàng)
這篇文章主要介紹了java volatile關(guān)鍵字使用方法及注意事項(xiàng)的相關(guān)資料,當(dāng)一個(gè)變量被聲明為 volatile 后,java 內(nèi)存模型確保所有使用該變量的線程能看到相同的、一致的值。,需要的朋友可以參考下2017-07-07Java網(wǎng)絡(luò)編程之UDP實(shí)現(xiàn)原理解析
UDP實(shí)現(xiàn)通信非常簡(jiǎn)單,沒(méi)有服務(wù)器,每個(gè)都是客戶端,每個(gè)客戶端都需要一個(gè)發(fā)送端口和一個(gè)接收端口,本文給大家介紹Java網(wǎng)絡(luò)編程之UDP實(shí)現(xiàn)原理解析,感興趣的朋友一起看看吧2021-09-09java使用Dijkstra算法實(shí)現(xiàn)單源最短路徑
這篇文章主要為大家詳細(xì)介紹了java使用Dijkstra算法實(shí)現(xiàn)單源最短路徑,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-01-01java web項(xiàng)目里ehcache.xml介紹
java web項(xiàng)目里ehcache.xml介紹,需要的朋友可以參考一下2013-03-03