Spring中@Value注解的使用方法詳解
Spring中的@Value注解
在spring項(xiàng)目中必不可少的就是讀取配置文件,那么讀取配置文件就有兩種方式。一種就是使用Spring中@Value注解,還有一種是使用SpringBoot中的@ConfigurationProperties注解,本篇文章主要是介紹常用的第一種方式
@Value 注解有兩種方式,@Value(“${}”)和@Value(“#{}”)兩種方式
第一種 @Value(“${}”)是用來獲取配置文件 第二種@Value(“#{}”)是用來表示 SpEl 表達(dá)式通常用來獲取 bean 的屬性,或者調(diào)用 bean 的某個(gè)方法。
$號(hào)用法
獲取application.yml文件中port
先說配置文件中屬性的注入
server: port: 8129
測試代碼如下
@Value("${server.port}")
private String port;
@Test
public void getPort(){
System.out.println("############"+port+"############");
}
測試結(jié)果如下

$號(hào)用法
測試獲取自定義的配置文件中的屬性
先配置自定義配置文件
1,在application.yml文件中加上這一句

2,然后編寫application-config.yml配置文件,加上測試屬性中多個(gè)值的情況

測試代碼如下
// 測試自定義的配置文件
@Value("${user.password}")
private String password;
@Test
public void getPassword(){
System.out.println(password);
}
//測試配置多個(gè)值
@Value("${users}")
private String[] toolArray;
@Value("${users}")
private List<String> toolList;
@Test
public void getTools(){
System.out.println(toolArray);
// 反射得到其類型
String typeName = toolList.getClass().getTypeName();
System.out.println(typeName);
System.out.println(toolList);
}
測試結(jié)果如下:
測試自定義配置文件中的屬性結(jié)果:

測試數(shù)組類型結(jié)果:

不加#號(hào)或者$號(hào)的注入
用途暫未知
代碼如下:
@Value("hello")
private String value;
@Test
public void getValue(){
System.out.println(value);
}
測試結(jié)果如下

#號(hào)的用法
注入其他Bean中的屬性
先創(chuàng)建一個(gè)Bean并且注入到spring容器中
@Component("myBeans")
public class other {
@Value("hello")
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
測試方法如下:
// 注入其他Bean的屬性
@Value("#{myBeans.name}")
private String fromAnotherBean;
@Test
public void getFromAnotherBean(){
System.out.println(fromAnotherBean);
}
結(jié)果如下:

到此這篇關(guān)于Spring中@Value注解的使用方法詳解的文章就介紹到這了,更多相關(guān)@Value注解內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Mybatis3中方法返回生成的主鍵:XML,@SelectKey,@Options詳解
這篇文章主要介紹了Mybatis3中方法返回生成的主鍵:XML,@SelectKey,@Options,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01
解決spring cloud zuul與nginx的域名轉(zhuǎn)發(fā)問題
這篇文章主要介紹了spring cloud zuul與nginx的域名轉(zhuǎn)發(fā)問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07
java實(shí)現(xiàn)輸出任意整數(shù)的每一位
這篇文章主要介紹了java實(shí)現(xiàn)輸出任意整數(shù)的每一位,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-01-01
SpringBoot實(shí)現(xiàn)文件下載功能的方式分享
這篇文章主要為大家詳細(xì)介紹了SpringBoot這哪個(gè)實(shí)現(xiàn)文件下載功能的幾種方式,文中的實(shí)現(xiàn)方法簡介易懂,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-03-03
SpringBoot結(jié)合mockito測試實(shí)戰(zhàn)
與集成測試將系統(tǒng)作為一個(gè)整體測試不同,單元測試更應(yīng)該專注于某個(gè)類。所以當(dāng)被測試類與外部類有依賴的時(shí)候,尤其是與數(shù)據(jù)庫相關(guān)的這種費(fèi)時(shí)且有狀態(tài)的類,很難做單元測試。但好在可以通過“Mockito”這種仿真框架來模擬這些比較費(fèi)時(shí)的類,從而專注于測試某個(gè)類內(nèi)部的邏輯2022-11-11
Spring Boot + Jpa(Hibernate) 架構(gòu)基本配置詳解
本篇文章主要介紹了Spring Boot + Jpa(Hibernate) 架構(gòu)基本配置詳解,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05
解決MyEclipse6.5無法啟動(dòng),一直停留剛開始啟動(dòng)界面的詳解
本篇文章是對解決MyEclipse6.5無法啟動(dòng),一直停留剛開始啟動(dòng)界面的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05

