SpEL:Spring Expression Language
SpEL特性
- 使用Bean的ID來引用Bean
- 調用方法和訪問對象的屬性
- 對值進行關係、邏輯和算術運算
- 正則表達式匹配
- 集合操作
對於下面這兩種要有區分:
SpEL形式:#{ … }
屬性佔位符:${ … }
SpEL運算符
算術運算:+、-、*、/、%、^
比較運算:<、>、==、<=、>=、lt、gt、eq、le、ge
邏輯運算:and、or、not、|
條件運算:?:
正則表達式:matches
實例
字面量(浮點數、boolean、String值)
: #{1} 最爲簡單的SpEL表達式
類
:#{T(java.long.System).currentTimeMillis()}
“T()表達式會將java.lang.System視爲Java中對應的類型,因此可以調用其static修飾的currentTimeMillis()方法”
:#{setBean.selectArtist()?.toUpperCase()}
?. : 表示前面爲空,輸出null,不爲空,打印出對應的字符串的大寫
Bean屬性
:#{setBean.title}
系統屬性
:#{systemProperties[‘spring.data’]}
集合:
:#{jukebox.song[4].title} 集合第五個元素
查詢運算符(.?[])
- 匹配運算法
- {jukebox.songs.?[artist eq ‘alex’]}
查詢第一匹配項和最後一項:
:#{jukebox.songs.^[artist eq ‘alex’]}
:#{jukebox.songs.$[artist eq ‘alex’]}
投影運算符
.![]
:#{jukebox.songs.?[artist eq ‘alex’].![title]}