SpringBoot超詳細講解@Value注解
一、非配置文件注入
1、注入普通字符串
直接附在屬性名上,在 Bean 初始化時,會賦初始值。
@Value("admin")
private String name;
2、注入JAVA系統(tǒng)變量
@Value("#{systemProperties['os.name']}")
private String osName;
這里的 osName 是 JAVA 的 System.getProperties() 方法獲取的JAVA環(huán)境變量 ,查看java系統(tǒng)變量的方法如下:
public String getproperties() {
//獲取所有的屬性
Properties properties = System.getProperties();
//為了看看系統(tǒng)的屬性有幾個,加了一個計數(shù)器
//遍歷所有的屬性
for (String key : properties.stringPropertyNames()) {
System.out.println(key + "=" + properties.getProperty(key));
}
return null;
}3、注入表達式
@Value("#{ T(java.lang.Math).random() * 100.0 }")
private double randomNumber;
注:#{} 中寫表達式。
4、注入其他Bean屬性
注入 beanInject 對象的屬性 another 。
@Value("#{beanInject.another}")
private String fromAnotherBean;
5、注入文件資源
@Value("classpath:com/hry/spring/configinject/config.txt")
private Resource resourceFile;
6、注入URL資源
@Value("http://www.baidu.com")
private Resource testUrl;
二、通過配置文件注入
SpringBoot 通過 @Value 注解將配置文件中的屬性注入到容器內(nèi)組件中(可用在 @Controller 、@Service 、@Configuration、@Component 等Spring托管的類中)
1、注入普通字符串
在 application.properties 配置文件中有如下配置:
name=admin
@Value 注入屬性:
@Value("${name}")
public String name;
此時,name 的值為 admin。
當配置文件中 name= 空時,此時name屬性的值為 "" 。
我們可以為注入屬性設置默認值:
@Value("${name:admin}")
public String name;
2、注入基本類型
在 application.properties 配置文件中有如下配置:
port=8888
open=true
score=90.1
@Value 注入屬性:
@Value("${port:1111}")
private int port;
@Value("${open:true}")
private boolean open;
@Value("${score:100}")
private double score;3、注入數(shù)組類型
在 application.properties 配置文件中有如下配置:
ids=1,2,3
@Value 注入屬性:
@Value("${ids}")
public int[] arrIds;
注:當配置文件中 ids 沒有對應值時,數(shù)組 arrIds 為 非null空數(shù)組,長度為 0。
4、注入List類型
在 application.properties 配置文件中有如下配置:
ids=1,2,3
@Value 注入屬性:
@Value("#{'${ids}'.split(',')}")
public List<String> listIds;
注:當配置文件中 ids 沒有對應值時,集合 listIds 長度為 1 ,存在值為:"" 。
5、注入Map類型
在 application.properties 配置文件中有如下配置:
user="{name:'admin', age:'23'}"
@Value 注入屬性:
@Value("#{${user}}")
public Map<String, String> userMap;
#{} 表示使用 SpEL表達式 。
注:當配置文件中 user 沒有對應值是,啟動報錯。
到此這篇關(guān)于SpringBoot超詳細講解@Value注解的文章就介紹到這了,更多相關(guān)SpringBoot @Value注解內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解決MyEclipse中Maven設置jdk版本jdk1.8報錯問題
今天安裝了jdk1.8、tomcat8、和maven3.5.2,弄好后在myeclipse新建了一個maven項目,項目默認是jdk1.5,改成jdk1.8后項目報錯2018-10-10
Jpa 實現(xiàn)自動更新表中的創(chuàng)建日期和修改時間
這篇文章主要介紹了Jpa 實現(xiàn)自動更新表中的創(chuàng)建日期和修改時間,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01
maven?scope?provided和runtime的例子說明
這篇文章主要介紹了maven?scope?provided和runtime的例子說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-12-12
Java使用easyExcel批量導入數(shù)據(jù)詳解
這篇文章主要介紹了Java使用easyExcel批量導入數(shù)據(jù)詳解,通常我們會提供一個模板,此模塊我們可以使用easyExcel導出數(shù)據(jù)生成的一個Excel文件當作模板,提供下載鏈接,用戶在該文件內(nèi)填入規(guī)定的數(shù)據(jù)格式以后可以批量導入數(shù)據(jù)到數(shù)據(jù)庫中,需要的朋友可以參考下2023-08-08

