SpringBoot中的application.properties無法加載問題定位技巧
SpringBoot application.properties無法加載
項目場景
SpringBoot 早上啟動發(fā)現(xiàn)配置無法加載
問題描述
在使用SpringBoot的時候,發(fā)現(xiàn)配置總是無法加載,啟動又不報錯
原因分析
其實可以通過一個一些技巧來定位問題
在使用@ConfigurationProperties的時候,其實里面是有些附加屬性可以設(shè)置,其中一個就是ignoreUnknownFields 這個屬性設(shè)置為false,當(dāng)配置了非法屬性的時候,Spring boot就會啟動失敗
//只有這個組件是容器中的組件,才能使用容器提供的@ConfigurationProperties功能
//@ConfigurationProperties告訴springboot將本類中的所有屬性和配置文件中相關(guān)的配置進行綁定
//prefix表示與配置文件中哪個下面的所有屬性進行映射
@Component
//prefix里面的配置只能小寫
@ConfigurationProperties(prefix ="userpo", ignoreUnknownFields = false)
public class UserPo {
}顯示報錯如下,例如我的例子,我配置的時候刪除了字段的get和set方法,導(dǎo)致無法注入,可以通過恢復(fù)get和set方法的方式來解決問題
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
解決方案
通過增加get 和set 方法接解決此問題
springBoot自定義application.properties配置文件名稱
將springboot項目的properties文件改為自定義名稱
更改名稱后的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);
}
}后來我又學(xué)了個新的方法,不用啟動類,可以寫個配置類,這個方法更好
@Configuration
@PropertySource("classpath:a_demo.properties")
@MapperScan(basePackages = "xxx.mapper")
public class CoreConfig {
}
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Spring Boot application.yml配置文件示例詳解
本文詳細(xì)介紹了SpringBootapplication.yml配置文件的使用和配置項,通過學(xué)習(xí)本文,您應(yīng)該已經(jīng)掌握了如何使用application.yml文件來配置SpringBoot應(yīng)用程序的不同組件,如數(shù)據(jù)源、數(shù)據(jù)庫、緩存、郵件服務(wù)等,感興趣的朋友一起看看吧2025-02-02
Springboot @Transactional大事務(wù)處理的幾點建議
本文主要介紹了大事務(wù)的概念及其危害,并提出了幾種解決大事務(wù)問題的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(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的項目IDEA(附源碼下載)
這篇文章主要介紹了快速搭建Spring Boot+MyBatis的項目IDEA(附源碼下載),本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-12-12
在controller中如何設(shè)置接收參數(shù)的默認(rèn)值
這篇文章主要介紹了在controller中如何設(shè)置接收參數(shù)的默認(rèn)值,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03

