1.概覽
Spring 的 @Vaule 注解提供了一種便捷的方法可以讓屬性值注入到組件中,當屬性值不存在的時候提供一個默認值也是非常好用的
這就是我們這篇文章所專注的,如何給 @Vaule 注解指定一個默認值。對于更多的關于 @Vaule 的教程看這篇文章
2.String 默認值
讓我們看看對于 String 類型的值,給定一個默認值得基礎語法
1
2
|
private String stringWithDefaultValue; |
如果 some.key 無法解析,那么 stringWithDefaultValue 的值會被設置為默認值 "my default value".
相似的,我們也可以用如下方法,設置一個空字符串作為默認值
1
2
|
@Value ( "${some.key:})" private String stringWithBlankDefaultValue; |
3.原始類型
給像 int 或者 boolean 的原始類型賦一個默認值,我們使用文字值:
1
2
3
4
|
@Value ( "${some.key:true}" ) private boolean booleanWithDefaultValue; @Value ( "${some.key:42}" ) private int intWithDefaultValue; |
如果愿意,可以用原始類型的包裝類型來代替,例如 Boolean 和 Integer
4.數組
我們可以使用逗號分隔的 list 來用于數組的注入,如下
1
2
3
4
5
|
@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 Expression Language (SpEL) 去指定一個表達式或者默認值
在下面的例子中,我們期望 some.system.key 被設置為系統值,如果他不存在則我們想用 "my default system property value"
1
2
|
@Value ( "#{systemProperties['some.key'] ?: 'my default system property value'}" ) private String spelWithDefaultValue; |
6.總結
在這篇文章中,我們研究了如何為使用Spring的@Value注釋注入的屬性設置默認值。
像往常一樣,本文中使用的所有代碼示例都可以在GitHub項目中找到。
到此這篇關于Spring @Value 設置默認值的實現的文章就介紹到這了,更多相關Spring @Value 設置默認值內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!
原文鏈接:https://segmentfault.com/a/1190000023962377