springboot如何靜態(tài)加載@configurationProperties
平時開發(fā),基本不改變的常量我們都放在了配置項里,如properties或yml文件里,這個時候?yàn)榱酥辉趩訒r候進(jìn)行加載。如何做呢?
我們通過springboot的 @ConfigurationProperties 注解和static靜態(tài)化對應(yīng)屬性進(jìn)行。
但如果操作不當(dāng),會導(dǎo)致加載的數(shù)據(jù)為空,至于為什么,看下面的案例。
1、錯誤案例
//錯誤1:get\set都是靜態(tài)方法
@Component
@ConfigurationProperties(prefix = "mobile")
public class MobileConfig
{
public static Integer preview;
public static Integer getPreview() {
return preview;
}
public static void setPreview(Integer preview) {
MobileConfig.preview = preview;
}
}
//錯誤2:跟第一種差不多,只是用了lombok注解代替了get\set方法,get\set也都是靜態(tài)方法
@Data
@Component
@ConfigurationProperties(prefix = "mobile")
public class MobileConfig
{
public static Integer preview;
}
2、成功案例
@Component
@ConfigurationProperties(prefix = "mobile")
public class MobileConfig
{
public static Integer preview;
public static Integer getPreview() {
return preview;
}
public void setPreview(Integer preview) {
MobileConfig.preview = preview;
}
}
@Data
@Component
@ConfigurationProperties(prefix = "mobile")
public class MobileConfig
{
public static Integer preview;
public void setPreview(Integer preview) {
MobileConfig.preview = preview;
}
}
3、原因
spring在注入的時候,需要調(diào)用set 方法,如果這個方法是靜態(tài)方法,就沒法動態(tài)注入了,所以只需要把get方法加入static作為靜態(tài)方法即可,如果用了@Data,只需要重寫set方法即可。
到此這篇關(guān)于springboot如何靜態(tài)加載@configurationProperties的文章就介紹到這了,更多相關(guān)springboot靜態(tài)加載@configurationProperties內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- SpringBoot中@ConfigurationProperties注解的使用與源碼詳解
- SpringBoot @ConfigurationProperties使用詳解
- springboot中@ConfigurationProperties無效果的解決方法
- SpringBoot @ConfigurationProperties注解的簡單使用
- springboot @ConfigurationProperties和@PropertySource的區(qū)別
- SpringBoot中@ConfigurationProperties 配置綁定
- SpringBoot中@ConfigurationProperties實(shí)現(xiàn)配置自動綁定的方法
- SpringBoot中的@ConfigurationProperties注解的使用
- 深入解析Spring Boot中的@ConfigurationProperties注解
相關(guān)文章
java實(shí)體類轉(zhuǎn)成map的實(shí)現(xiàn)
這篇文章主要介紹了java實(shí)體類轉(zhuǎn)成map的實(shí)現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-06-06
Java圖形化界面設(shè)計之布局管理器之BorderLayout案例詳解
這篇文章主要介紹了Java圖形化界面設(shè)計之布局管理器之BorderLayout案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08
Springboot內(nèi)置的工具類之CollectionUtils示例講解
這篇文章主要介紹了Springboot內(nèi)置的工具類之CollectionUtils,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-12-12
Java8接口默認(rèn)靜態(tài)方法及重復(fù)注解原理解析
這篇文章主要介紹了Java8接口默認(rèn)靜態(tài)方法及重復(fù)注解原理解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-04-04
Java wait和notifyAll實(shí)現(xiàn)簡單的阻塞隊列
這篇文章主要介紹了Java wait和notifyAll實(shí)現(xiàn)簡單的阻塞隊列,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-10-10
MybatisPlus只取一條記錄的兩種方法實(shí)現(xiàn)
本文介紹了MyBatis-Plus2.x和3.x版本在IService接口獲取單條記錄的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-07-07
JavaWeb應(yīng)用實(shí)例:用servlet實(shí)現(xiàn)oracle 基本增刪改查
本篇文章主要介紹了JavaWeb應(yīng)用實(shí)例:用servlet實(shí)現(xiàn)oracle 基本增刪改查,非常具有實(shí)用價值,需要的朋友可以參考下。2017-01-01
SpringBoot利用EasyExcel實(shí)現(xiàn)導(dǎo)出數(shù)據(jù)
EasyExcel是一個基于Java的、快速、簡潔、解決大文件內(nèi)存溢出的Excel處理工具,它能讓你在不用考慮性能、內(nèi)存的等因素的情況下,快速完成Excel的讀、寫等功能看,本文就將介紹如何利用EasyExcel實(shí)現(xiàn)導(dǎo)出數(shù)據(jù),需要的朋友可以參考下2023-07-07

