SpringBoot @ConfigurationProperties注解的簡單使用
源碼
@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三個屬性就被綁定到了對象上。
注意到我們使用了@Component,實際上我們使用配置類都是將其注入到其他類中,所以我們往往將其注冊為Bean。
ignoreInvalidFields默認(rèn)為false,不合法的屬性的屬性會默認(rèn)拋出異常;
ignoreUnknownFields默認(rèn)為true, 未能識別的屬性會被忽略(所以打錯了名字就會被忽略了)
@ConfigurationProperties(prefix="config.prefix", ignoreInvalidFields=true, ignoreUnknownFields=false)
public class MyConfig {
// fields
}
Spring Boot的綁定規(guī)則相當(dāng)寬松,myField, my-field, my_field等都能識別綁定到myField上。
可以給字段設(shè)定默認(rèn)值,這樣配置中沒有傳入時會使用默認(rèn)值。
@ConfigurationProperties("your.prefix")
public class YourConfig {
private String field = "Default"
// setter
}
類的字段必須要有public訪問權(quán)限的setter方法。
在很多情況下public的setter方法時必須的,使用IDEA的話,這里推薦Alt+Insert(Windows, Mac使用Alt+n)生成;當(dāng)然,想使用Lombok也可以
以上就是SpringBoot @ConfigurationProperties注解的簡單使用的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot @ConfigurationProperties注解的資料請關(guān)注腳本之家其它相關(guān)文章!
- SpringBoot中的@ConfigurationProperties注解解析
- SpringBoot中@ConfigurationProperties注解的使用與源碼詳解
- 關(guān)于SpringBoot的@ConfigurationProperties注解和松散綁定、數(shù)據(jù)校驗
- SpringBoot2底層注解@ConfigurationProperties配置綁定
- SpringBoot中@ConfigurationProperties注解實現(xiàn)配置綁定的三種方法
- SpringBoot中注解@ConfigurationProperties與@Value的區(qū)別與使用詳解
- Springboot之@ConfigurationProperties注解解讀
相關(guān)文章
java中Memcached的使用實例(包括與Spring整合)
這篇文章主要介紹了java中Memcached的使用實例(包括與Spring整合),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07
Mybatis-Plus使用MetaObjectHandler實現(xiàn)自動填充實體對象字段
在我們使用Mybatis-Plus時,一些簡單的CRUD,你會發(fā)現(xiàn)好多表,許多字段是重復(fù)的,如果我們每次更新或者新增,都要手動賦值,那么會出現(xiàn)許多不必要的重復(fù)操作,所以本文介紹了Mybatis-Plus使用MetaObjectHandler實現(xiàn)自動填充實體對象字段,需要的朋友可以參考下2024-11-11
Nacos后臺頻繁打印get changedGroupKeys:[]的問題及解決
這篇文章主要介紹了Nacos后臺頻繁打印get changedGroupKeys:[]的問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-01-01
application.yaml與bootstrap.yaml的使用
這篇文章主要介紹了application.yaml與bootstrap.yaml的使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-08-08
SpringBoot接收J(rèn)SON類型的參數(shù)方式
這篇文章主要介紹了SpringBoot接收J(rèn)SON類型的參數(shù)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2025-03-03
java地理坐標(biāo)系及投影間轉(zhuǎn)換代碼示例
在地圖投影中,經(jīng)常需要將坐標(biāo)從不同的坐標(biāo)系之間進行轉(zhuǎn)換,下面這篇文章主要給大家介紹了關(guān)于java地理坐標(biāo)系及投影間轉(zhuǎn)換的相關(guān)資料,需要的朋友可以參考下2024-08-08

