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}'}