使用@Value注解從配置文件中讀取數(shù)組
@Value注解從配置文件讀取數(shù)組
作用:從配置文件中取值
用法:
1.取單個(gè)值
(1)configuration.properties配置
status.notice.switch=open
(2)java文件自動(dòng)注入
@Value("${status.notice.switch}")
private String statusNoticeSwitch;
2.取數(shù)組
(1)configuration.properties配置
lanwon.hospital.id=43534,234543,w353654
(2)java文件自動(dòng)注入
@Value("#{'${lanwon.hospital.id}'.split(',')}")
private List<String> hospitalIdList;
使用@Value注解注入值(配置文件讀?。?/h2>
在 Spring 組件中使用 @Value 注解的方式,可以直接從 .properties,.yum 等配置文件獲取配置信息便于實(shí)現(xiàn)項(xiàng)目的配置化運(yùn)行。
1. 配置方式
1.1 使用
1、@Value("${key}")
2、@Value("#{configProperties[‘key']}") (SpEL表達(dá)式)
1.2 默認(rèn)值配置
1、基礎(chǔ)方式: ${key}:defaultvalue
2. SpEL方式:
使用 Spring Expression Language (SpEL) 設(shè)置默認(rèn)值。
下面的代碼標(biāo)示在systemProperties屬性文件中,如果沒(méi)有設(shè)置 some.key 的值,my default system property value 會(huì)被設(shè)置成默認(rèn)值。
@Value("#{systemProperties['some.key'] ?: 'my default system property value'}")
private String spelWithDefaultValue;
2. 使用場(chǎng)景
2.1 聲明的變量
public static class FieldValueTestBean {
@Value("#{ systemProperties['user.region'] }")
private String defaultLocale;
}
2.2 setter 方法
public static class PropertyValueTestBean {
private String defaultLocale;
@Value("#{ systemProperties['user.region'] }")
public void setDefaultLocale(String defaultLocale) {
this.defaultLocale = defaultLocale;
}
}
2.3 方法
public class SimpleMovieLister {
private MovieFinder movieFinder;
private String defaultLocale;
@Autowired
public void configure(MovieFinder movieFinder,
@Value("#{ systemProperties['user.region'] }") String defaultLocale) {
this.movieFinder = movieFinder;
this.defaultLocale = defaultLocale;
}
// ...
}
2.4 構(gòu)造方法
public class MovieRecommender {
private String defaultLocale;
private CustomerPreferenceDao customerPreferenceDao;
@Autowired
public MovieRecommender(CustomerPreferenceDao customerPreferenceDao,
@Value("#{systemProperties['user.country']}") String defaultLocale) {
this.customerPreferenceDao = customerPreferenceDao;
this.defaultLocale = defaultLocale;
}
// ...
}
3 各種屬性的注入及其默認(rèn)值設(shè)置
3.1 字符串
字符串類型的屬性設(shè)置默認(rèn)值。
@Value("${some.key:my default value}")
private String stringWithDefaultValue;
some.key 沒(méi)有設(shè)置值,stringWithDefaultValue 變量值將會(huì)被設(shè)置成 my default value 。
如果默認(rèn)值設(shè)為空,也將會(huì)被設(shè)置成默認(rèn)值。
@Value("${some.key:}")
private String stringWithBlankDefaultValue;
3.2 基本類型
基本類型設(shè)置默認(rèn)值。
@Value("${some.key:true}")
private boolean booleanWithDefaultValue;
@Value("${some.key:42}")
private int intWithDefaultValue;
3.3 包裝類型
包裝類型設(shè)置默認(rèn)值。
@Value("${some.key:true}")
private Boolean booleanWithDefaultValue;
@Value("${some.key:42}")
private Integer intWithDefaultValue;
3.4 數(shù)組
數(shù)組的默認(rèn)值可以使用逗號(hào)分割。
@Value("${some.key:one,two,three}")
private String[] stringArrayWithDefaults;
@Value("${some.key:1,2,3}")
private int[] intArrayWithDefaults;
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
一小時(shí)迅速入門Mybatis之實(shí)體類別名與多參數(shù) 動(dòng)態(tài)SQL
這篇文章主要介紹了一小時(shí)迅速入門Mybatis之實(shí)體類別名與多參數(shù) 動(dòng)態(tài)SQL,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-09
JavaWeb頁(yè)面中防止點(diǎn)擊Backspace網(wǎng)頁(yè)后退情況
當(dāng)鍵盤敲下后退鍵(Backspace)后怎么防止網(wǎng)頁(yè)后退情況呢?今天小編通過(guò)本文給大家詳細(xì)介紹下,感興趣的朋友一起看看吧2016-11-11
Spring MVC獲取查詢參數(shù)及路徑參數(shù)代碼實(shí)例
這篇文章主要介紹了Spring MVC獲取查詢參數(shù)及路徑參數(shù)代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-02-02
Java特性?Lambda?表達(dá)式和函數(shù)式接口
這篇文章主要介紹了Java特性?Lambda?表達(dá)式和函數(shù)式接口,Lambda表達(dá)式基于函數(shù)式編程思想,也可以稱為閉包,是Java?8引入的重要新特性,?Lambda允許把函數(shù)作為一個(gè)方法的參數(shù)2022-06-06
DTO 實(shí)現(xiàn) service 和 controller 之間值傳遞的操作
這篇文章主要介紹了DTO 實(shí)現(xiàn) service 和 controller 之間值傳遞的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-02-02
javaweb Servlet開(kāi)發(fā)總結(jié)(二)
這篇文章主要為大家詳細(xì)介紹了javaweb Servlet開(kāi)發(fā)總結(jié)的第二篇,感興趣的小伙伴們可以參考一下2016-05-05

