首页 专题 文章 代码 归档
SpEL表达式
2020.01.23 10:15 2020.01.26 13:08

学习SpEL表达式

spEL表达式,即Spring Expression Language。

作用:

  • 在SpEL中使用字面量
  • 引用其它bean,或bean中的某个属性值
  • 使用非静态方法
  • 使用静态方法
  • 使用运算符等

请看下面的例子:

<!--测试基于xml自动装配-->
<bean class="com.misiai.bean.Car" id="car01">
    <property name="name" value="宝马"/>
    <property name="price" value="90000"/>
    <property name="color" value="黑色"/>
</bean>
<bean class="com.misiai.bean.Student" id="student"/>


<!--测试spel表达式-->
<bean id="book" class="com.misiai.bean.Book">
    <property name="name" value="十万个冷笑话"/>
    <property name="price" value="30"/>
</bean>

<bean id="student02" class="com.misiai.bean.Student">
    <!--计算表达式-->
    <property name="salary" value="#{120*31}"/>
    <!--引用某个属性-->
    <property name="name" value="#{book.name}"/>
    <!--引用bean-->
    <property name="car" value="#{car01}"/>
</bean>

结果:

截图-1579743235


调用静态方法:

表达式:#{T(静态方法全限定类名).方法}

<!--调用静态/非静态方法-->
<bean id="student03" class="com.misiai.bean.Student">
    <property name="sno" value="#{T(java.util.UUID).randomUUID().toString()}"/>
</bean>
@Test
public void test03() {
    Student student03 = ap.getBean("student03", Student.class);
    System.out.println(student03.getSno());
}

结果:

截图-1579743746

非静态方法:

语法:#{对象.方法名}

<!--调用静态/非静态方法-->
<bean id="student03" class="com.misiai.bean.Student">
    <property name="sno" value="#{T(java.util.UUID).randomUUID().toString()}"/>
    <property name="name" value="#{book.name}"/>
</bean>
本节阅读完毕! (分享
二维码图片 扫描关注我们哟