Spring的@ConfigurationProperties注解詳解
前言
本篇文章主要介紹SringBoot中的@ConfigurationProperties注解,該注解是用來獲取yml或者properties配置文件的配置信息,下面根據(jù)一些配置信息給出案例代碼進(jìn)行講解。
@ConfigurationProperties 屬性介紹
| 屬性名稱 | 介紹 |
| prefix、value | 指定屬性前綴 |
| ignoreInvalidFields | 是否忽略無效字段,如果設(shè)置為true,則在綁定過程中遇到無效字段不會拋出異常 下面有對該屬性值的專門介紹 默認(rèn)是false |
| ignoreUnknownFields | 是否忽略未知字段,如果設(shè)置為true,則在綁定過程中遇到未知字段不會拋出異常 下面有對該屬性值的專門介紹 默認(rèn)是true |
案例代碼介紹
下面在yml配置文件中配置:
user:
name: "張三"
age: 18
hobbies:
- "看書"
- "寫代碼"
代碼實(shí)現(xiàn):
@Component
@ConfigurationProperties(prefix = "user")
public class UserInfo {
private String name;
private int age;
private List<String> hobbies;
}
這樣,就能從配置文件中讀取到配置的信息。
ignoreInvalidFields 屬性用法
如果,我把ignoreInvalidFields屬性值設(shè)置為false(ignoreInvalidFields屬性值默認(rèn)值就是fasle),然后把yml配置文件中的age修改成字符串類型,這樣配置文件中的類型和Class中的類型不一致就會出現(xiàn)錯(cuò)誤,以下是代碼案例
user:
name: "張三"
age: 18
hobbies:
- "看書"
- "寫代碼"
代碼實(shí)現(xiàn):
@Component
@ConfigurationProperties(prefix = "user", ignoreInvalidFields = false)
public class UserInfo {
private String name;
private int age;
private List<String> hobbies;
}
錯(cuò)誤如下:
***************************
APPLICATION FAILED TO START
***************************
Description:
Failed to bind properties under 'user.age' to int:
Property: user.age
Value: 18歲
Origin: class path resource [application.yml] - 10:8
Reason: failed to convert java.lang.String to int (caused by java.lang.NumberFormatException: For input string: "18歲")
Action:
Update your application's configuration
ignoreUnknownFields 屬性用法
這里,我把ignoreUnknownFields屬性值設(shè)置為false(ignoreUnknownFields屬性值默認(rèn)值是true),然后把UserInfo文件中的hobbies變量刪除,這樣配置文件中的類型和Class中的屬性就會不一致,接下來就會出現(xiàn)錯(cuò)誤,以下是代碼案例
user:
name: "張三"
age: 18
hobbies:
- "看書"
- "寫代碼"
代碼實(shí)現(xiàn):
@Component
@ConfigurationProperties(prefix = "user", ignoreUnknownFields = false)
public class UserInfo {
private String name;
private int age;
}
錯(cuò)誤如下:
***************************
APPLICATION FAILED TO START
***************************
Description:
Binding to target [Bindable@31e2232f type = com.demo.UserInfo, value = 'provided', annotations = array<Annotation>[@org.springframework.boot.context.properties.ConfigurationProperties(ignoreInvalidFields=false, ignoreUnknownFields=false, prefix=user, value=user)]] failed:
Property: user.hobbies[0]
Value: 看書
Origin: class path resource [application.yml] - 12:7
Reason: The elements [user.hobbies[0],user.hobbies[1]] were left unbound.
Property: user.hobbies[1]
Value: 寫代碼
Origin: class path resource [application.yml] - 13:7
Reason: The elements [user.hobbies[0],user.hobbies[1]] were left unbound.
Action:
Update your application's configuration
到此這篇關(guān)于Spring的@ConfigurationProperties注解詳解的文章就介紹到這了,更多相關(guān)@ConfigurationProperties注解內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java實(shí)現(xiàn)的簡單數(shù)字處理類及用法示例
這篇文章主要介紹了Java實(shí)現(xiàn)的簡單數(shù)字處理類及用法,涉及java數(shù)字運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下2018-01-01
Java SpringMVC框架開發(fā)之?dāng)?shù)據(jù)導(dǎo)出Excel文件格式實(shí)例詳解
這篇文章主要介紹了Java基礎(chǔ)開發(fā)之?dāng)?shù)據(jù)導(dǎo)出Excel文件格式實(shí)例詳解,需要的朋友可以參考下2020-02-02
使用Java實(shí)現(xiàn)視頻與音頻轉(zhuǎn)碼
這篇文章主要為大家詳細(xì)介紹了如何使用Java實(shí)現(xiàn)視頻與音頻轉(zhuǎn)碼,即把其他視頻格式轉(zhuǎn)換成HTML5能播放的視頻格式和把其他音頻格式轉(zhuǎn)換為mp3,感興趣的小伙伴可以了解下2025-07-07
使用SpringBoot AOP 記錄操作日志、異常日志的過程
這篇文章主要介紹了使用SpringBoot AOP 記錄操作日志、異常日志的過程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-05-05
JAVA實(shí)現(xiàn)生成順序ID,不浪費(fèi)ID
這篇文章主要介紹了JAVA實(shí)現(xiàn)生成順序ID,不浪費(fèi)ID問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-04-04
IDEA運(yùn)行SpringBoot項(xiàng)目的詳細(xì)步驟(圖文教程)
本文主要介紹了IDEA運(yùn)行SpringBoot項(xiàng)目的詳細(xì)步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07

