您好,登錄后才能下訂單哦!
這篇文章主要介紹“如何解決使用@Value(${×××))從properties文件取值碰到的問題”,在日常操作中,相信很多人在如何解決使用@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文件中的值的
如:
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、靜態變量無法注入
2、Springboot默認屬性文件是application.properties
Test類中有一個在application.properties配置的屬性email
@Value("${email}") private String email;
如果email在配置中沒有配置,應用啟動時將報找不到該屬性異常,導致啟動失敗。
在Test類上同時加上@Component,@Lazy
在springboot中提供了@ConditionalOnProperty注解
設置注入條件
@ConditionalOnProperty(name = "flag", havingValue = "true")
僅當配置文件application.properties中flag屬性為true時才會實例化bean
到此,關于“如何解決使用@Value(${×××))從properties文件取值碰到的問題”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。