SpringBoot中的application.properties無(wú)法加載問(wèn)題定位技巧
SpringBoot application.properties無(wú)法加載
項(xiàng)目場(chǎng)景
SpringBoot 早上啟動(dòng)發(fā)現(xiàn)配置無(wú)法加載
問(wèn)題描述
在使用SpringBoot的時(shí)候,發(fā)現(xiàn)配置總是無(wú)法加載,啟動(dòng)又不報(bào)錯(cuò)
原因分析
其實(shí)可以通過(guò)一個(gè)一些技巧來(lái)定位問(wèn)題
在使用@ConfigurationProperties的時(shí)候,其實(shí)里面是有些附加屬性可以設(shè)置,其中一個(gè)就是ignoreUnknownFields 這個(gè)屬性設(shè)置為false,當(dāng)配置了非法屬性的時(shí)候,Spring boot就會(huì)啟動(dòng)失敗
//只有這個(gè)組件是容器中的組件,才能使用容器提供的@ConfigurationProperties功能 //@ConfigurationProperties告訴springboot將本類(lèi)中的所有屬性和配置文件中相關(guān)的配置進(jìn)行綁定 //prefix表示與配置文件中哪個(gè)下面的所有屬性進(jìn)行映射 @Component //prefix里面的配置只能小寫(xiě) @ConfigurationProperties(prefix ="userpo", ignoreUnknownFields = false) public class UserPo { }
顯示報(bào)錯(cuò)如下,例如我的例子,我配置的時(shí)候刪除了字段的get和set方法,導(dǎo)致無(wú)法注入,可以通過(guò)恢復(fù)get和set方法的方式來(lái)解決問(wèn)題
Description:
Binding to target [Bindable@6815c5f2 type = com.lpx.study.testmaven.config.UserPo, value = 'provided', annotations = array<Annotation>[@org.springframework.boot.context.properties.ConfigurationProperties(ignoreInvalidFields=false, ignoreUnknownFields=false, prefix=userpo, value=userpo)]] failed:
Property: userpo.son.name1
Value: wangwu
Origin: class path resource [application.properties]:4:18
Reason: The elements [userpo.son.name1] were left unbound.
Action:
Update your application's configuration
解決方案
通過(guò)增加get 和set 方法接解決此問(wèn)題
springBoot自定義application.properties配置文件名稱(chēng)
將springboot項(xiàng)目的properties文件改為自定義名稱(chēng)
更改名稱(chēng)后的properties文件仍然放置在resource下
@SpringBootApplication public class DemoSpringbootApplication { public static void main(String[] args) { new SpringApplicationBuilder(DemoApplication.class) .properties("spring.config.name:a_demo") .build() .run(args); } }
后來(lái)我又學(xué)了個(gè)新的方法,不用啟動(dòng)類(lèi),可以寫(xiě)個(gè)配置類(lèi),這個(gè)方法更好
@Configuration @PropertySource("classpath:a_demo.properties") @MapperScan(basePackages = "xxx.mapper") public class CoreConfig { }
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Spring Boot application.yml配置文件示例詳解
本文詳細(xì)介紹了SpringBootapplication.yml配置文件的使用和配置項(xiàng),通過(guò)學(xué)習(xí)本文,您應(yīng)該已經(jīng)掌握了如何使用application.yml文件來(lái)配置SpringBoot應(yīng)用程序的不同組件,如數(shù)據(jù)源、數(shù)據(jù)庫(kù)、緩存、郵件服務(wù)等,感興趣的朋友一起看看吧2025-02-02Springboot @Transactional大事務(wù)處理的幾點(diǎn)建議
本文主要介紹了大事務(wù)的概念及其危害,并提出了幾種解決大事務(wù)問(wèn)題的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-01-01詳解如何在Spring?Security中自定義權(quán)限表達(dá)式
這篇文章主要和大家詳細(xì)介紹一下如何在Spring?Security中自定義權(quán)限表達(dá)式,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2022-07-07快速搭建Spring Boot+MyBatis的項(xiàng)目IDEA(附源碼下載)
這篇文章主要介紹了快速搭建Spring Boot+MyBatis的項(xiàng)目IDEA(附源碼下載),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12在controller中如何設(shè)置接收參數(shù)的默認(rèn)值
這篇文章主要介紹了在controller中如何設(shè)置接收參數(shù)的默認(rèn)值,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03解決JSON.toJSONString首字母大小寫(xiě)的問(wèn)題
這篇文章主要介紹了解決JSON.toJSONString首字母大小寫(xiě)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02