Spring表达式语言SpEL

一、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

猜你喜欢

转载自blog.csdn.net/qingpengshan/article/details/80576530