•
Spring
表达式
语言
(简称
SpEL
):是
一个
支持运行时查询和操作对象图的强大的表达式语言
。
•
语法类似于
EL
:
SpEL
使用
#
{…}
作为定界符,所有在大框号中的字符都将被认为是
SpEL
•
SpEL
为
bean
的属性进行动态赋值提供了便利
•
通过
SpEL
可以实现:
–
通过
bean
的
id
对
bean
进行
引用
–
调用
方法以及
引用对象中的属性
–
计算
表达式的值
–
正则表达式
的
匹配
SpEL:字面量
•
字面
量的
表示:
–
整数:
<
property name="count" value="
#{5
}
"/>
–
小数:
<
property name="frequency" value="
#{89.7
}
"/>
–
科学计数
法:
<
property name="capacity"value="
#{1e4
}
"/>
–
String
可以使用单引号或者双引号作为字符串的定界符
号
:
<
property name
=“name”
value
=
"
#{'Chuck'}
"/>
或
<property
name='name' value='
#{"Chuck
"}
'/>
–
Boolean
:
<property
name="enabled"value="
#{false}
"/>
SpEL:引用Bean、属性和方法(1)
•
引用其他
对象:
•
•
引用其他对象的
属性
•
•
•
调用其他方法,还可以链式操作
–
SpEL支持的运算符号(1)
•
算数运算符:
+, -, *, /, %,
^
:
•
加号
还可以用作字符串连
接:
比较
运算符:
<, >, ==, <=, >=,
lt
,
gt
,
eq
, le,
ge
•
逻辑运算符号:
and, or, not,
|
•
if-else
运算符
:
?: (ternary), ?: (Elvis
)
•
if-else
的变体
•
•
正则表达式
:
matches
•
SpEL:引用 Bean、属性和方法(2)
•
调用静态方法或静态属性
:通过
T()
调用
一
个类的静态方法,它
将返回一
个
Class Object
,然后再
调用相应的
方法或属性:
============
----------------