Spring 表達式語言(簡稱SpEL):是一個支持運行時查詢和操做對象圖的強大的表達式語言。java
語法相似於 EL:SpEL 使用 #{...} 做爲定界符 , 全部在大括號中的字符都將被認爲是 SpEL , SpEL 爲 bean 的屬性進行動態賦值提供了便利。正則表達式
經過 SpEL 能夠實現:對象
- 經過 bean 的 id 對 bean 進行引用。
- 調用方式以及引用對象中的屬性。
- 計算表達式的值
- 正則表達式的匹配。
SpEL 字面量:字符串
- 整數:#{8}
- 小數:#{8.8}
- 科學計數法:#{1e4}
- String:可使用單引號或者雙引號做爲字符串的定界符號。
- Boolean:#{true}
SpEL引用bean , 屬性和方法:email
- 引用其餘對象:#{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}'}