SpEL笔记

SpEL使用示例

    <bean id="chineseA" class="com.xxx.bean.Chinese" scope="prototype">
        <constructor-arg value="Li Lei"/>
        <constructor-arg value="15"/>
        <constructor-arg ref="dogA"/>
    </bean>
 
   <!-- SpEL示例 -->
    <bean id="americanB" class="com.xxx.bean.American">
        <!-- 直接赋值 -->
        <property name="name" value="#{'Mike Sui'}" />
        <!-- T()访问类的静态域与运算符的使用 -->
        <property name="age" value="#{T(java.lang.Math).random() * 10}" />
        <!-- 使用其他类实例成员赋值 -->
        <property name="pet" value="#{americanA.pet}" />
    </bean>

    <bean id="americanC" class="com.xxx.bean.American">
        <property name="name" value="#{americanB.name}" />
        <!-- 运算符的使用 -->
        <!-- 包括 gt(>), eq(=), lt(<), ge(>=), le(<=) -->
        <!-- 逻辑运算符 and, or, not -->
        <property name="age" value="#{(americanB.age gt 10) and (americanB.age le 18)? americanB.age : 10}" />
        <!-- 正则的使用 -->
        <property name="validEmail" value="#{americanB.email matches '[a-zA-Z0-9._]+@[a-zA-Z0-9.]+\.com'}" />
        <!-- 安全取值操作符 "?.", 为NULL是不会执行下步操作 -->
        <property name="petName" value="#{americanA.getPet()?.getName}" />

    </bean>

    <!-- util 集合的使用 -->
    <util:list id="cities">
        <bean class="com.xxx.bean.City"
              p:name="Beijing" p:population="1500000" />
        <bean class="com.xxx.bean.City"
              p:name="Shanghai" p:population="2000000" />
        <bean class="com.xxx.bean.City"
              p:name="Shaoguan" p:population="400000" />
        <bean class="com.xxx.bean.City"
              p:name="Hangzhou" p:population="800000" />
    </util:list>

    <bean id="chinese" class="com.xxx.bean.Chinese">
        <!-- 集合成员的访问 -->
        <property name="city" value="#{cities[2]}" />
        <property name="country" value="#{countries['Dallas']}" />
        <!-- 集合成员的过滤 ".?[]" 操作符的使用 -->
        <!-- 筛选人口多余1000000的城市 -->
        <property name="myCities" value="#{cities.?[population gt 1000000]}" />
        <!-- 获取集合中所有成员的某个属性 ".![]" 操作符的使用 -->
        <property name="cityNames" value="#{cities.?[population gt 1000000].![name]}" />
        <!-- 获取集合中第一个和最后一个匹配项 ".^[] .$[]的使用" -->
        <property name="firstCity" value="#{cities.^[population gt 1000000]}" />
        <property name="lastCity" value="#{cities.$[population gt 1000000]}" />
    </bean>
原文地址:https://www.cnblogs.com/zemliu/p/3197739.html