1. 概述
Spring 的 @Value 註解提供了一種方便的方法,可以將屬性值注入到組件中。它也非常有用,可以為可能不存在的屬性提供合理的默認值。
我們將重點介紹在 Spring 的 @Value 註解中指定默認值的具體方法。
有關 @Value 的更詳細快速指南,請參閲此處。
2. 字符串默認值
讓我們看一下為 String 屬性設置默認值的基本語法:
@Value("${some.key:my default value}")
private String stringWithDefaultValue;
如果 some.key 無法被解析,stringWithDefaultValue 將會被設置為 my default value 的默認值。
同樣,我們可以將一個空字符串設置為默認值:
@Value("${some.key:}")
private String stringWithBlankDefaultValue;3. 原始數據類型
為了為原始數據類型(如布爾值和整數)設置默認值,我們使用字面值:
@Value("${some.key:true}")
private boolean booleanWithDefaultValue;@Value("${some.key:42}")
private int intWithDefaultValue;
如果我們想要,我們可以使用原始包裝器,通過將類型更改為Boolean和Integer。
4. 數組
我們還可以將用逗號分隔的值列表注入到數組中:
@Value("${some.key:one,two,three}")
private String[] stringArrayWithDefaults;
@Value("${some.key:1,2,3}")
private int[] intArrayWithDefaults;在上述第一個示例中,值 one、two 和 three 作為默認值注入到 stringArrayWithDefaults 中。
在第二個示例中,值 1、2 和 3 作為默認值注入到 intArrayWithDefaults 中。
5. 使用 SpEL
我們可以使用 Spring 表達式語言 (SpEL) 來指定一個表達式和默認值。
在下面的示例中,我們期望將 <em >some.system.key</em> 設置為系統屬性,如果未設置,我們希望使用 <em >my default system property value</em> 作為默認值。
@Value("#{systemProperties['some.key'] ?: 'my default system property value'}")
private String spelWithDefaultValue;6. 結論
在本文中,我們探討了如何為希望通過 Spring 的 @Value 註解注入值的屬性設置默認值。