給@Value設置默認值以及為static變量賦值問題
更新時間:2024年09月19日 15:53:13 作者:天黑請?閉眼
在Spring框架中,@Value注解用于屬性注入,可將配置文件中的值賦給變量,未指定默認值時,若配置文件缺少相應屬性,程序啟動會報錯,可通過設定默認值防止此問題,對于靜態(tài)變量,由于@Value無法直接注入,需通過Set方法賦值,該方法也支持默認值設置
@Value用法
1、賦值時沒有指定默認值
@Value("${server.port}") private int serverPort;
配置文件對應配置如下
server.port=8080
如上,程序啟動時會自動將配置文件對應的屬性值賦值給對應的變量
注:
- 在沒有指定默認值的情況下,
- 如果忘記在配置文件配置對應的屬性,
- 在程序啟動時會報錯,導致程序啟動失敗,
- 這種情況可以為@Value指定默認值,來避免該問題
2、賦值時指定默認值
@Value("${server.port:8080}") private int serverPort;
如上,如果在配置文件沒有配置對應的屬性,則使用8080作為默認值
3、為靜態(tài)變量賦值
在某些特定的情況,需要為static的變量賦值,不能直接將@Value使用到靜態(tài)變量上,這樣無法將配置值注入到該靜態(tài)變量
可以使用Set方法為靜態(tài)變量賦值
private static int serverPort;
@Value("${server.port}") public void setServerPort(Integer serverPort) { 類名.serverPort = serverPort; }
注:
- 以上方法同樣可以指定默認值
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
IntelliJ IDEA 2020.1 EAP4 發(fā)布,重命名/更改簽名新功能一覽
這篇文章主要介紹了IntelliJ IDEA 2020.1 EAP4 發(fā)布,重命名/更改簽名新功能,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-04-04IDEA?服務器熱部署圖文詳解(On?Update?action/On?frame?deactivation)
這篇文章主要介紹了IDEA?服務器熱部署詳解(On?Update?action/On?frame?deactivation),本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-03-03一文詳解如何在Java?Maven項目中使用JUnit?5進行測試
這篇文章主要介紹了如何在Java?Maven項目中使用JUnit?5進行測試的相關資料,JUnit5是一個流行的Java測試框架,它涵蓋了JUnit5的概述、環(huán)境配置、編寫測試用例、運行測試、高級特性和最佳實踐,需要的朋友可以參考下2025-04-04