Spring表达式

SpEL:Spring Expression Language

SpEL特性

  1. 使用Bean的ID来引用Bean
  2. 调用方法和访问对象的属性
  3. 对值进行关系、逻辑和算术运算
  4. 正则表达式匹配
  5. 集合操作

对于下面这两种要有区分:
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]}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章