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
測(cè)試代碼如下
@Value("${server.port}") private String port; @Test public void getPort(){ System.out.println("############"+port+"############"); }
測(cè)試結(jié)果如下
$號(hào)用法
測(cè)試獲取自定義的配置文件中的屬性
先配置自定義配置文件
1,在application.yml文件中加上這一句
2,然后編寫application-config.yml配置文件,加上測(cè)試屬性中多個(gè)值的情況
測(cè)試代碼如下
// 測(cè)試自定義的配置文件 @Value("${user.password}") private String password; @Test public void getPassword(){ System.out.println(password); } //測(cè)試配置多個(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); }
測(cè)試結(jié)果如下:
測(cè)試自定義配置文件中的屬性結(jié)果:
測(cè)試數(shù)組類型結(jié)果:
不加#號(hào)或者$號(hào)的注入
用途暫未知
代碼如下:
@Value("hello") private String value; @Test public void getValue(){ System.out.println(value); }
測(cè)試結(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; } }
測(cè)試方法如下:
// 注入其他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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java數(shù)據(jù)結(jié)構(gòu)之循環(huán)隊(duì)列簡(jiǎn)單定義與用法示例
這篇文章主要介紹了Java數(shù)據(jù)結(jié)構(gòu)之循環(huán)隊(duì)列簡(jiǎn)單定義與用法,簡(jiǎn)要描述了循環(huán)隊(duì)列的概念、原理,并結(jié)合實(shí)例形式分析了java循環(huán)隊(duì)列的定義與使用方法,需要的朋友可以參考下2017-10-10Java CAS底層實(shí)現(xiàn)原理實(shí)例詳解
這篇文章主要介紹了Java CAS底層實(shí)現(xiàn)原理實(shí)例詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-01-01關(guān)于Lombok @Data注解:簡(jiǎn)化Java代碼的魔法棒
Lombok庫(kù)通過@Data注解自動(dòng)生成常見的樣板代碼如getter、setter、toString等,極大減少代碼量,提高開發(fā)效率,@Data注解集成了@ToString、@EqualsAndHashCode、@Getter、@Setter、@RequiredArgsConstructor等注解的功能2024-10-10Java筆記之從IO模型到Netty框架學(xué)習(xí)初識(shí)篇
Netty作為一個(gè)已經(jīng)發(fā)展了十多年的框架,已然非常成熟了,其中有大量的細(xì)節(jié)是普通使用者不知道或者不關(guān)心的,本文帶你查缺補(bǔ)漏掌握Netty的使用2022-03-03java實(shí)現(xiàn)馬踏棋盤算法(騎士周游問題)
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)馬踏棋盤算法,解決騎士周游問題,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02java實(shí)現(xiàn)簡(jiǎn)單圖書管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)簡(jiǎn)單圖書管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03Spring Boot 使用WebAsyncTask異步返回結(jié)果
這篇文章主要介紹了Spring Boot 使用WebAsyncTask異步返回結(jié)果的相關(guān)資料,需要的朋友可以參考下2018-02-02