一、SpEL简介
1、SpEL(Spring Expression Language):是一个支持运行时查询和操作对象图的强大的表达式语言。
2、类似于EL:SpEL使用 #{...} 作为定界符,在所有在 { } 中的字符都认为是SpEL。
二、SpEL表示字面值
1、字面值:可用字符串表示的值。
2、Spring配置Bean的属性时,可以使用SpEL表示字面值:
<!-- 整数--> <property name="intNum" value="#{2}"/> <!-- 浮点数--> <property name="floatNum" value="#{2.1}"/> <!-- 科学计数法--> <property name="scienceNum" value="#{1e4}"/> <!-- 字符串,单引号--> <property name="stringType" value="#{'Mike'}"/> <!-- 字符串,双引号--> <property name="stringType2" value='#{"Mike"}'/> <!-- 布尔值--> <property name="booleanValue" value="#{true}"/>
三、SpEL引用Bean、属性和方法
1、引用其Bean
<!-- bean1为其他bean的id-->
<property name="prop1" value="#{bean1}"/>
2、引用其他Bean的属性
<!-- bean1.prop2为其他bean的prop2属性-->
<property name="prop2" value="#{bean1.prop2}"/>
3、调用其他方法
<!-- 属性值为调用方法的返回值-->
<property name="prop3" value="#{prop2.toString()}"/>
<!-- 调用方法的连缀-->
<property name="prop3" value="#{prop2.toString().toLowerCase()}"/>
四、SpEL中使用运算符
1、算术运算符:+ - * / % ^:
<!-- 加法--> <property name="plus" value="#{2 + 2}"/> <!-- 减法--> <property name="sub" value="#{2 - 1}"/> <!-- 乘法--> <property name="mul" value="#{3 * 4}"/> <!-- 除法--> <property name="div" value="#{10 / 2}"/> <!-- 取余--> <property name="remainder" value="#{9 % 2}"/> <!-- 次方--> <property name="power" value="#{3 ^ 5}"/>
<!-- 加号还可以作为字符串连接符--> <property name="strConnect" value="#{'hello' + ' ' + 'world'}"/>
2、比较运算符:< > == <= >= lt gt eq le ge
<!-- == --> <property name="equals" value="#{numCount.intNum == 100}"/> <!-- <= --> <property name="lessOrEqual" value="#{numCount.intNum le 100}"/>
3、逻辑运算符:and,or,not
4、三目运算符:? :
5、正则表达式:matches