SpringBoot @ConfigurationProperties注解的簡(jiǎn)單使用
源碼
@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface ConfigurationProperties {
@AliasFor("prefix")
String value() default "";
@AliasFor("value")
String prefix() default "";
boolean ignoreInvalidFields() default false;
boolean ignoreUnknownFields() default true;
}
使用
向注解中傳入配置文件中的前綴名,如果配置文件如下:
myConfigs:
config1:
field1: f1
field2: f2
field3: f3
那么代碼中的配置類應(yīng)該這樣寫:
@Component
@ConfigurationProperties("myConfigs.config1")
public class MyConfig1 {
String field1;
String field2;
String field3;
}
如上所示,field1, field2, field3三個(gè)屬性就被綁定到了對(duì)象上。
注意到我們使用了@Component,實(shí)際上我們使用配置類都是將其注入到其他類中,所以我們往往將其注冊(cè)為Bean。
ignoreInvalidFields默認(rèn)為false,不合法的屬性的屬性會(huì)默認(rèn)拋出異常;
ignoreUnknownFields默認(rèn)為true, 未能識(shí)別的屬性會(huì)被忽略(所以打錯(cuò)了名字就會(huì)被忽略了)
@ConfigurationProperties(prefix="config.prefix", ignoreInvalidFields=true, ignoreUnknownFields=false)
public class MyConfig {
// fields
}
Spring Boot的綁定規(guī)則相當(dāng)寬松,myField, my-field, my_field等都能識(shí)別綁定到myField上。
可以給字段設(shè)定默認(rèn)值,這樣配置中沒有傳入時(shí)會(huì)使用默認(rèn)值。
@ConfigurationProperties("your.prefix")
public class YourConfig {
private String field = "Default"
// setter
}
類的字段必須要有public訪問權(quán)限的setter方法。
在很多情況下public的setter方法時(shí)必須的,使用IDEA的話,這里推薦Alt+Insert(Windows, Mac使用Alt+n)生成;當(dāng)然,想使用Lombok也可以
以上就是SpringBoot @ConfigurationProperties注解的簡(jiǎn)單使用的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot @ConfigurationProperties注解的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- SpringBoot中@ConfigurationProperties注解的使用與源碼詳解
- SpringBoot @ConfigurationProperties使用詳解
- springboot中@ConfigurationProperties無(wú)效果的解決方法
- springboot如何靜態(tài)加載@configurationProperties
- springboot @ConfigurationProperties和@PropertySource的區(qū)別
- SpringBoot中@ConfigurationProperties 配置綁定
- SpringBoot中@ConfigurationProperties實(shí)現(xiàn)配置自動(dòng)綁定的方法
- SpringBoot中的@ConfigurationProperties注解的使用
- 深入解析Spring Boot中的@ConfigurationProperties注解
相關(guān)文章
一文詳解Spring?Boot可以同時(shí)處理多少請(qǐng)求
SpringBoot是一個(gè)流行的Java開發(fā)框架,它被廣泛用于構(gòu)建Web應(yīng)用程序,但是,開發(fā)人員通常會(huì)擔(dān)心它的性能問題,特別是在高負(fù)載條件下,Spring?Boot能夠同時(shí)處理多少請(qǐng)求是一個(gè)重要的問題,在本文中,我們將討論SpringBoot的請(qǐng)求處理能力,并介紹如何提高性能2023-10-10
深入理解Java對(duì)象的序列化與反序列化的應(yīng)用
本篇文章是對(duì)Java中對(duì)象的序列化與反序列化進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05
mybatis-plus返回map自動(dòng)轉(zhuǎn)駝峰配置操作
這篇文章主要介紹了mybatis-plus返回map自動(dòng)轉(zhuǎn)駝峰配置操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-11-11
SpringBoot實(shí)現(xiàn)yml配置文件為變量賦值
這篇文章主要介紹了SpringBoot實(shí)現(xiàn)yml配置文件為變量賦值,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02
詳解Java中的字節(jié)碼增強(qiáng)技術(shù)
字節(jié)碼增強(qiáng)技術(shù)就是一類對(duì)現(xiàn)有字節(jié)碼進(jìn)行修改或者動(dòng)態(tài)生成全新字節(jié)碼文件的技術(shù)。本文將通過(guò)示例詳細(xì)說(shuō)說(shuō)Java的字節(jié)碼增強(qiáng)技術(shù),需要的可以參考一下2022-10-10
Java8實(shí)現(xiàn)優(yōu)雅的獲取重復(fù)字符與次數(shù)
這篇文章主要為大家詳細(xì)介紹了在Java8中,我們應(yīng)該如何進(jìn)行字符及字符串的去重,以及計(jì)算去重次數(shù),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下2023-12-12

