@Value的用法及(“#{}“)與@Value(“${}“)的區別
阿新 • • 發佈:2022-04-20
@Component
public class Person {
@Value("#{11*20}")
private int age;
@Value("true")
private boolean merry;
@Value("${person.name}")
private String name;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
1、@Value("#{}") Spring 表示式語言(簡稱SpEL)
SpEL 字面量:
整數:#{8}
小數:#{8.8}
科學計數法:#{1e4}
String:可以使用單引號或者雙引號作為字串的定界符號。 Boolean:#{true}
SpEL引用bean , 屬性和方法:
引用其他物件:#{car}
引用其他物件的屬性:#{car.brand}
呼叫其它方法 , 還可以鏈式操作:#{car.toString()}
呼叫靜態方法靜態屬性:#{T(java.lang.Math).PI}
SpEL支援的運算子號:
算術運算子:+,-,*,/,%,^(加號還可以用作字串連線)
比較運算子:< , > , == , >= , <= , lt , gt , eg , le , ge
邏輯運算子:and , or , not , |
if-else 運算子(類似三目運算子):?:(temary), ?:(Elvis)
正則表示式:#{admin.email matches ‘[a-zA-Z0-9._%±]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}’}
2.@Value(“true”) 直接賦值
3.@Value("${person.name}")
//從配置檔案application.properties中取值
@Value("${person.name}")
String REAL_NAME