解決使用@Value(${×××))從properties文件取值的坑
@Value(${×××))從properties文件取值
前提:
你的實體類已經加入到了IOC容器中(使用@Compenet等注解)
報錯代碼:
@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
此時你這樣寫 @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
對應的類也要修改
@Value("${jdbc.driver}")
private String driver;
@Value("${jdbc.url}")
private String url;
@Value("${jdbc.username}")
private String userName;
@Value("${jdbc.password}")
private String password;
這樣就可以正常獲取了
補充:
1、靜態(tài)變量無法注入
2、Springboot默認屬性文件是application.properties
Spring @Value("${}")空值處理
場景:
Test類中有一個在application.properties配置的屬性email
@Value("${email}")
private String email;
如果email在配置中沒有配置,應用啟動時將報找不到該屬性異常,導致啟動失敗。
解決方案1:
在Test類上同時加上@Component,@Lazy
解決方案2:
在springboot中提供了@ConditionalOnProperty注解
設置注入條件
@ConditionalOnProperty(name = "flag", havingValue = "true")
僅當配置文件application.properties中flag屬性為true時才會實例化bean
相關文章
SpringMVC中DispatcherServlet的HandlerMapping詳解
這篇文章主要介紹了SpringMVC中DispatcherServlet的HandlerMapping詳解,上回說的Handler,我們說是處理特定請求的,也就是說,不是所有的請求都能處理,那么問題來了,我們怎知道哪個請求是由哪個Handler處理的呢,需要的朋友可以參考下2023-10-10
spring boot 集成 shiro 自定義密碼驗證 自定義freemarker標簽根據權限渲染不同頁面(推薦
這篇文章主要介紹了spring-boot 集成 shiro 自定義密碼驗證 自定義freemarker標簽根據權限渲染不同頁面,需要的朋友可以參考下2018-12-12
java中如何使用BufferedImage判斷圖像通道順序并轉RGB/BGR
這篇文章主要介紹了java中如何BufferedImage判斷圖像通道順序并轉RGB/BGR的相關資料,需要的朋友可以參考下2017-03-03
深入淺析Java中Static Class及靜態(tài)內部類和非靜態(tài)內部類的不同
上次有朋友問我,java中的類可以是static嗎?我給他肯定的回答是可以的,在java中我們可以有靜態(tài)實例變量、靜態(tài)方法、靜態(tài)塊。當然類也可以是靜態(tài)的,下面小編整理了些關于java中的static class相關資料分享在腳本之家平臺供大家參考2015-11-11
springboot?vue測試平臺接口定義及發(fā)送請求功能實現
這篇文章主要為大家介紹了springboot+vue測試平臺接口定義及發(fā)送請求功能實現,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-05-05

