一 SpEL特性
1.使用Bean的ID引用Bean
2.调用方法和访问对象的属性
3.对值进行算术,关系和逻辑运算
4.正则表达式匹配
5.集合操作
二 引用Bean,Properties和方法
<property name="instrument" value="#{songer}" />
<property name="instrument" value="#{songer.name}" />
<property name="instrument" value="#{songer.song()}" />
当songer为null时调用song()会报NullPointerException,可以使用"?."代替"."
<property name="instrument" value="#{songer?.song()}" />
三 操作类
使用Java的Math类
<property name="randomNumber" value="#{T(java.lang.Math).random()}"/>
四 访问集合成员
<util:list> 在spring里配置List集合
<util:properties>在spring中加载一个properties配置文件
systemEnvironment包含了应用程序所在机器上的所有环境变量
<property name="homePath" value="#{systemEnvironment['HOME']}" />
systemProperties包含了Java应用程序启动时所设置的所有属性
五 查询集合成员
查询运算符(.?[])
<property name="bigCities" value="#{cities.?[population gt 1000000]}"/>
SpEL同样提供了两种其他查询运算符:“.^[]”和“。$[]” 查询匹配项的第一个和最后一个。
六 投影集合
投影集合运算符(.![])
<property name="cityNames" value="#{cities.![name]}"/>
注意:
在使用传统方式很难(甚至不可能)进行装配,而是用SpEL却很容易实现的场景下才使用SpEL。但是要小心,不要被SpEL迷住,抗拒SpEL的诱惑,不要把过多的逻辑放在SpEL表达式中。