Spring_表达式语言SpEL
锲而舍之,朽木不折;锲而不舍,金石可镂。
SpEL(Spring Expression Language, SpEL)
在依赖注入中,SpEL能够以一种强大和简洁的方式将值装配到bean属性和构造器参数中。
SpEL拥有很多特性:
1)使用bean的ID来引用bean;
2)调用方法和访问对象的属性;
3)对值进行算术、关系和逻辑运算;
4)正则表达式匹配;
5)集合操作。
使用bean的ID来引用bean
Spring使用 #{beanID.property}或#{beanID.method()}的形式使用SpEL语言引用其他bean的属性和方法。
#{beanID.method()?.toUpperCase()}使用了类型安全运算符 ?. ,这个运算符能够在它右边的内容之前,确保它所对应的元素不是null。
在表达式中使用类型
在SpEL中通过T()这个关键的运算符来访问类作用域的静态方法和常量。
#{T(java.lang.Math).random()}
SpEL运算符
在SpEL中用来操作表达式值的运算符如下:
1)算术运算符:+, -, *, /, %, ^
2)比较运算符:<, >, ==, <=, >=, lt, gt, eq, le, ge
3)逻辑与算符:and, or, not, |
4)条件运算符:?: (ternary), ?: (Elvis),其中?:(Elvis)用来检查Null值,并用一个默认值代替null
5)正则表达式:matches
6)查询运算符:
.?[],它会用来对集合进行过滤,得到集合的一个子集;
.^[],它用来在集合中查询第一个匹配项;
.$[],它用来在集合 中查询最后一个匹配项。
7)投影运算符:.![],它会从集合的每个成员中选择特定的属性放到另一个集合中去。