Spring配置文件無法讀取properties屬性的解決
Spring配置文件無法讀取properties
在Spring項目的配置文件中引用properties屬性文件中的屬性,運行時無法識別properties屬性文件中的屬性引用,但properties屬性文件和屬性明明已經(jīng)存在
例如:


要在Spring中使用外部properties屬性文件,需要在Spring配置文件中添加bean后處理器PropertyPlaceholderConfigurer,并指明外部properties屬性文件的路徑:
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations" value="properties路徑"/>
</bean>如果有多個properties屬性文件,可以使用下面方式:
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>properties路徑</value>
<value>properties路徑</value>
...
</list>
</property>
</bean>@Value讀取properties類型錯誤
Invalid boolean value [${spring.datasource.testWhileIdle}]
在開發(fā)過程中,遇到一個比較無語的問題:重新拉一份代碼搭框架,在啟動的時候讀取properties配置文件報類型轉(zhuǎn)換錯誤,因為代碼是一樣的,所以排除代碼的問題,在百度谷歌搜索了一遍沒有找到能夠解決的辦法
先貼上報錯信息:
Unsatisfied dependency expressed through field 'testWhileIdle'; nested exception is org.springframework.beans.TypeMismatchException: Failed to convert value of type 'java.lang.String' to required type 'boolean'; nested exception is java.lang.IllegalArgumentException: Invalid boolean value [${spring.datasource.testWhileIdle}]
我們可以看到,報錯信息給我們的提示是,String轉(zhuǎn)Boolean類型錯誤。

這里使用了spring的@Value注解,我在配置文件中填的是 true。
后來我對讀到的參數(shù)進行強轉(zhuǎn)類型,依舊報錯??梢源_定取到的值是不正確的
經(jīng)過測試,讀取值,發(fā)現(xiàn)讀取到的值為 spring.datasource.testWhileIdle 而不是 true (spring在讀取配置文件時,如果不能讀取到,@Value取到的值就是括號里面的值,有點坑。)
我們可以斷定未加載properties成功。
知道了讀取不到的真正原因之后,其實再去搜索問題就比較簡單了。
eclipse解決方案
由于eclipse配置源代碼excludes過濾掉了application.properties或application.yml造成的,具體位置在: Project Properties --> Java Build Path --> Source(tab) --> Source folders on build path: [Exclusion section]
idea解決方案
目前在idea里的配置我還不太清楚,我用的是idea,最后通過pom.xml解決問題

引入properties,最終解決。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
java商城項目實戰(zhàn)之購物車功能實現(xiàn)
這篇文章主要為大家詳細介紹了java商城項目實戰(zhàn)之購物車功能實現(xiàn),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-04-04
使用maven的profile構(gòu)建不同環(huán)境配置的方法
這篇文章主要介紹了使用maven的profile構(gòu)建不同環(huán)境配置的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01
深入解析Jdk8中Stream流的使用讓你脫離for循環(huán)
這篇文章主要介紹了Jdk8中Stream流的使用,讓你脫離for循環(huán),本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2020-02-02
spring mvc中的@PathVariable動態(tài)參數(shù)詳解
這篇文章主要介紹了spring mvc中的@PathVariable動態(tài)參數(shù)詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-11-11
Spring?Cloud中Sentinel的兩種限流模式介紹
如何使用Sentinel做流量控制呢?這篇文章就來為大家詳細介紹了Spring?Cloud中Sentinel的兩種限流模式,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-05-05

