解決SpringBoot使用@Value獲取不到y(tǒng)aml中配置值的問題
在最近的開發(fā)中遇到一個問題,使用@Value獲取yml文件中配置的屬性時始終獲取不到值,一開始我以為是沒有注入的問題,或者沒有寫setter方法的問題,后來我發(fā)現(xiàn)這些都都寫了然后開始百度發(fā)現(xiàn)獲取不到屬性值有這么幾個原因
獲取不到值的原因
1.沒有使用Component注解,也就是沒有注入到容器內(nèi)
2.變量被static修飾
3.在構造器中使用了屬性值
問題分析
前兩點原因可以否定掉了,我在構造器中使用了這個變量導致的
原因:在這個問題中我忽略了spring Bean的生命周期
實例化Bean:在這個階段,Spring容器創(chuàng)建Bean的實例,調(diào)用Bean的構造方法。
注入屬性:Spring容器會盡力注入配置的屬性值,包括使用
@Value注解注入的值。初始化Bean:在這個階段,Spring容器執(zhí)行一些初始化方法。通常,這包括調(diào)用
InitializingBean接口的afterPropertiesSet方法、執(zhí)行在Bean上使用@PostConstruct注解的方法或自定義的初始化方法。


解決問題
知道了問題所在,但是還需要在bean加載的時候獲取到屬性值怎么辦,可以使用InitializingBean來解決,InitializingBean接口是Spring Framework提供的一個用于初始化Bean的方式之一。它是org.springframework.beans.factory.InitializingBean接口的一部分。當一個Bean實現(xiàn)InitializingBean接口時,它必須提供一個afterPropertiesSet方法,該方法將在Bean的屬性設置之后被自動調(diào)用。通常,你可以在這個方法中執(zhí)行一些初始化邏輯,以確保Bean在被容器實例化后處于可用狀態(tài)。

以上就是SpringBoot使用@Value獲取不到y(tǒng)aml中值的問題解決的詳細內(nèi)容,更多關于SpringBoot @Value獲取不到y(tǒng)aml的資料請關注腳本之家其它相關文章!
相關文章
Java實現(xiàn)將Markdown格式內(nèi)容轉換為Word文檔
這篇文章主要為大家詳細介紹了如何使用Java實現(xiàn)將Markdown格式內(nèi)容轉換為Word文檔,文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下2025-06-06
你所不知道的Spring的@Autowired實現(xiàn)細節(jié)分析
這篇文章主要介紹了你所不知道的Spring的@Autowired實現(xiàn)細節(jié)分析,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08
MyBatis動態(tài)SQL與MyBatis Generator插件使用教程
動態(tài)SQL是Mybatis的強大特性之?,能夠完成不同條件下不同的sql拼接,本文給大家介紹MyBatis動態(tài)SQL與MyBatis Generator插件使用,感興趣的朋友跟隨小編一起看看吧2026-03-03

