SpringBoot @ConfigurationProperties注解的簡(jiǎn)單使用
@Target({ElementType.TYPE, ElementType.METHOD})@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @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)該這樣寫(xiě):
@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)值,這樣配置中沒(méi)有傳入時(shí)會(huì)使用默認(rèn)值。
@ConfigurationProperties('your.prefix')public class YourConfig { private String field = 'Default' // setter}
類的字段必須要有public訪問(wèn)權(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)注好吧啦網(wǎng)其它相關(guān)文章!
相關(guān)文章:
1. msxml3.dll 錯(cuò)誤 800c0019 系統(tǒng)錯(cuò)誤:-2146697191解決方法2. ASP常用日期格式化函數(shù) FormatDate()3. 解析原生JS getComputedStyle4. 輕松學(xué)習(xí)XML教程5. HTML DOM setInterval和clearInterval方法案例詳解6. 阿里前端開(kāi)發(fā)中的規(guī)范要求7. xpath簡(jiǎn)介_(kāi)動(dòng)力節(jié)點(diǎn)Java學(xué)院整理8. css代碼優(yōu)化的12個(gè)技巧9. jsp實(shí)現(xiàn)登錄驗(yàn)證的過(guò)濾器10. jsp+servlet簡(jiǎn)單實(shí)現(xiàn)上傳文件功能(保存目錄改進(jìn))
