1. 程式人生 > 程式設計 >Spring @Value 設定預設值的實現

Spring @Value 設定預設值的實現

1.概覽

Spring 的 @Vaule 註解提供了一種便捷的方法可以讓屬性值注入到元件中,當屬性值不存在的時候提供一個預設值也是非常好用的

這就是我們這篇文章所專注的,如何給 @Vaule 註解指定一個預設值。對於更多的關於 @Vaule 的教程看這篇文章

2.String 預設值

讓我們看看對於 String 型別的值,給定一個預設值得基礎語法

@Value("${some.key:my default value}")
private String stringWithDefaultValue;

如果 some.key 無法解析,那麼 stringWithDefaultValue 的值會被設定為預設值 "my default value".

相似的,我們也可以用如下方法,設定一個空字串作為預設值

@Value("${some.key:})"
private String stringWithBlankDefaultValue;

3.原始型別

給像 int 或者 boolean 的原始型別賦一個預設值,我們使用文字值:

@Value("${some.key:true}")
private boolean booleanWithDefaultValue;
@Value("${some.key:42}")
private int intWithDefaultValue;

如果願意,可以用原始型別的包裝型別來代替,例如 Boolean 和 Integer

4.陣列

我們可以使用逗號分隔的 list 來用於陣列的注入,如下

@Value("${some.key:one,two,three}")
private String[] stringArrayWithDefaults;
 
@Value("${some.key:1,2,3}")
private int[] intArrayWithDefaults;

在上面第一個例子,值為 "one","two",和 "three" 的陣列將被注入到 stringArrayWithDefaults 中

在上面第二個例子,值為 1,和 3 的陣列將被注入 intArrayWithDefaults 中

5.使用SpEL表示式

我們也可以使用 Spring Expression Language (SpEL) 去指定一個表示式或者預設值

在下面的例子中,我們期望 some.system.key 被設定為系統值,如果他不存在則我們想用 "my default system property value"

@Value("#{systemProperties['some.key'] ?: 'my default system property value'}")
private String spelWithDefaultValue;

6.總結

在這篇文章中,我們研究瞭如何為使用Spring的@Value註釋注入的屬性設定預設值。

像往常一樣,本文中使用的所有程式碼示例都可以在GitHub專案中找到。

到此這篇關於Spring @Value 設定預設值的實現的文章就介紹到這了,更多相關Spring @Value 設定預設值內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!