在做項目的時候需要使用代碼實現(xiàn)讀取properties文件內(nèi)容,使用@value(name=”xxx”)去讀取,但是當(dāng)參數(shù)變多的時候,通過@value操作就顯得臃腫。springboot提供了更加簡單的操作:那就是通過@ConfigurationProperties一次性讀取并映射到j(luò)avabean。
注意:1:此注解只適合項目有一個屬性文件,如果大型項目用到了多個屬性文件,需要另做處理,需指定@ConfigurationProperties讀取的屬性文件!
@ConfigurationProperties(prefix = “dolphin”, locations = “classpath:dolphin.properties”)
2:默認讀取的是properties文件,可能有的項目配置的yml格式,所以要注意符合的變化點要編程冒號!
@ConfigurationProperties(ignoreUnknownFields = false, prefix = “ftp:client”)
最近在項目中做一個ftp自動上傳下載文件的功能,學(xué)習(xí)之余就用到了@ConfigurationProerties。首先在properties文件中加入如下配置信息
然后寫一個實體類,用于存儲映射的信息,并加上注解@ConfigurationProerties和@Component,當(dāng)然也可以通過@Bean注入的。
參數(shù)一:value:
前綴,用于識別properties文件里需要映射的內(nèi)容,如果拿ftp地址例子來講,就是映射的屬性host加上前綴ftp.client后即是ftp.client.host的內(nèi)容
參數(shù)二:prefix:
前綴,用于識別properties文件里需要映射的內(nèi)容,如果拿ftp地址例子來講,就是映射的屬性host加上前綴ftp.client后即是ftp.client.host的內(nèi)容
參數(shù)三:ignoreUnknownFields:
映射properties的字段中如果夾雜著未知的字段,將被忽略。例如:當(dāng)配置文件中有一個或多個屬性未綁定到實體類時或?qū)傩悦殖鲥e或已被刪除了,這時候對于實體類,properties里的屬性是未知的。這種情況我們希望程序啟動失敗,這時候就將此參數(shù)設(shè)置為false即可
參數(shù)四:ignoreInvalidFields:
指示綁定到此對象時應(yīng)忽略無效字段。根據(jù)所使用的活頁夾,Invalid表示無效,通常這表示無效類型錯誤的字段(或不能強制轉(zhuǎn)換為正確類型的字段)。(默認為false):如properties的數(shù)字屬性綁定到實體類字符類型的變量上。這時候我們期望程序啟動失敗,設(shè)置false即可!
參數(shù)五:ignoreNestedProperties:
標(biāo)記當(dāng)綁定到這個對象字段的名字中帶有句號(即”.”)時應(yīng)該被忽略。默認false。就可以理解為properties屬性里有多余的字符.
參數(shù)六:exceptionIfInvalid:
該類用{@link Validated @Validated}注釋,驗證失敗,則應(yīng)引發(fā)異常,如果設(shè)置為false,驗證錯誤將被吞噬。它們會被記錄下來,但是沒有傳播到調(diào)用者。(默認為true)