1. 程式人生 > 程式設計 >Springboot中@Value的使用詳解

Springboot中@Value的使用詳解

Springboot通過@Value註解將配置檔案中的屬性注入到容器內元件中(可用在@Controller、@Service、@Configuration、@Component等Spring託管的類中)

1.普通字串注入

例:yml中存在key:

name: zs

@Value注入

@Value("${name}")
public String name;

當yml中的name沒有對應值時,即yml中為:

name:

此時字串name的值為""

可設定注入屬性的預設值(當配置檔案中沒有此key時,此預設值生效),語法:

@Value("${name:zch}")

public String name;// 此時,若配置檔案中沒有name這個key,變數name的值為zch

2.常用的int、boolean型別

例:

yml中存在key:

port: 8888

flag: true

@Value注入

@Value("${port}")

public int port;

@Value("${flag}")

public boolean flag;

3.陣列型別

例:

yml中存在key:

id: 1,2,3

@Value注入

@Value("${id}")

public int[] idArray;

當yml中id沒有對應值時,陣列idArray為非null空陣列,長度為0

4.list型別

例:

yml中存在key:

id: 1,3

@Value注入

@Value("#{'${id}'.split(',')}")

public List<String> idList;

當yml中id沒有對應值時,集合idList長度為1,存在值"" (原本以為是空集合,造成bug,特記錄)

5.map型別

例:

yml中存在key:

user: "{name: 'zs',age: '23'}" #注意此值用雙引號包裹

@Value注入

@Value("#{${user}}")

public Map<String,String> userInfo;

當yml中user沒有對應值是,啟動報錯

#{}表示使用SpEL表示式,(此處是來自未來的文章超連結,正在路上)

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。