解決使用@Value(${×××))從properties文件取值的坑
@Value(${×××))從properties文件取值
前提:
你的實(shí)體類已經(jīng)加入到了IOC容器中(使用@Compenet等注解)
報(bào)錯(cuò)代碼:
@Value("${driver}") private String driver; @Value("${url}") private String url; @Value("${username}") private String userName; @Value("${password}") private String password;
properties文件
driver=com.mysql.cj.jdbc.Driver url=jdbc:mysql://localhost:3306/abc?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&useSSL=false username=root password=admin
此時(shí)你這樣寫 @Value 注解是無法獲取 properties文件中的值的
必須要在properties文件屬性前加上前綴(任意)即可
如:
jdbc.driver=com.mysql.cj.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/abc?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&useSSL=false jdbc.username=root jdbc.password=admin
對應(yīng)的類也要修改
@Value("${jdbc.driver}") private String driver; @Value("${jdbc.url}") private String url; @Value("${jdbc.username}") private String userName; @Value("${jdbc.password}") private String password;
這樣就可以正常獲取了
補(bǔ)充:
1、靜態(tài)變量無法注入
2、Springboot默認(rèn)屬性文件是application.properties
Spring @Value("${}")空值處理
場景:
Test類中有一個(gè)在application.properties配置的屬性email
@Value("${email}") private String email;
如果email在配置中沒有配置,應(yīng)用啟動(dòng)時(shí)將報(bào)找不到該屬性異常,導(dǎo)致啟動(dòng)失敗。
解決方案1:
在Test類上同時(shí)加上@Component,@Lazy
解決方案2:
在springboot中提供了@ConditionalOnProperty注解
設(shè)置注入條件
@ConditionalOnProperty(name = "flag", havingValue = "true")
僅當(dāng)配置文件application.properties中flag屬性為true時(shí)才會實(shí)例化bean
相關(guān)文章
使用@RequestBody傳對象參數(shù)時(shí)碰到的坑
這篇文章主要介紹了使用@RequestBody傳對象參數(shù)時(shí)碰到的坑,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08關(guān)于IDEA 2020使用 mybatis-log-plugin插件的問題
這篇文章主要介紹了關(guān)于IDEA 2020使用 mybatis-log-plugin插件的問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11微服務(wù)Spring Boot 整合 Redis 實(shí)現(xiàn)UV 數(shù)據(jù)統(tǒng)計(jì)的詳
這篇文章主要介紹了微服務(wù)Spring Boot 整合 Redis 實(shí)現(xiàn) UV 數(shù)據(jù)統(tǒng)計(jì),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-01-01通過jenkins發(fā)布java項(xiàng)目到目標(biāo)主機(jī)上的詳細(xì)步驟
這篇文章主要介紹了通過jenkins發(fā)布java項(xiàng)目到目標(biāo)主機(jī)上的詳細(xì)步驟,發(fā)布java項(xiàng)目的步驟很簡單,通過拉取代碼并打包,備份目標(biāo)服務(wù)器上已有的要發(fā)布項(xiàng)目,具體內(nèi)容詳情跟隨小編一起看看吧2021-10-10Spring Bean初始化及銷毀多種實(shí)現(xiàn)方式
這篇文章主要介紹了Spring Bean初始化及銷毀多種實(shí)現(xiàn)方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11java書店系統(tǒng)畢業(yè)設(shè)計(jì) 總體設(shè)計(jì)(1)
這篇文章主要介紹了java書店系統(tǒng)畢業(yè)設(shè)計(jì),第一步系統(tǒng)總體設(shè)計(jì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-10-10