SpEL表达式
SpEL是一种强大的、简洁的装配Bean的方式,它通过运行期执行的表达式将值装配到Bean的属性或构造器参数中。
SpEL表达式和EL表达式类似,EL表达式使用${....},而SpEL表达式使用#{.....},SpEL表达式不只是用于配置Xml中使用,其可以独
立于Spring容器使用,接下来只介绍一些简单的用法,用于配置Bean
!具体使用方法将有下面的例子具体说明 !
SpEL基本使用方式
1.字面值
原本的配置方式:
<bean id="helloWorld" class="com.chenx.spring.beans.HelloWorld">
<property name="name" value="ccc"></property>
</bean>
使用SpEl表达式配置相同的配置:
<bean id="helloWorld" class="com.chenx.spring.beans.HelloWorld">
<property name="name" value="#{'ccc'}"></property>
</bean>
结论:
可以使用#{'....'} 来表示一个字面值
扫描二维码关注公众号,回复:
8519148 查看本文章
2.类型运算符
SpEL表达式使用T() 将括号中的字符串当作类处理,从而可以使用类的静态属性,具体使用如下:
<bean id="helloWorld" class="com.chenx.spring.beans.HelloWorld">
<property name="name" value="#{T(java.lang.Math).PI}"></property>
</bean>
上面这个例子使用了Math的静态属性PI,此结果下赋值为3.1415926.....
3.引用其他的Bean
原本引用其他的bean:
<bean id="student" class="com.chenx.spring.beans.Student">
<property name="list" ref="helloWorld"></property>
</bean>
使用SpEL表达式引用:
<bean id="student" class="com.chenx.spring.beans.Student">
<property name="list" value="#{helloWorld}"></property>
</bean>
还可以引用其他bean中的属性:
<bean id="student" class="com.chenx.spring.beans.Student">
<property name="name" value="#{helloWorld.name}"></property>
</bean>
4.使用运算符
<bean id="student" class="com.chenx.spring.beans.Student">
<property name="age" value="#{helloWorld.age > 20 ? '大人' : '小孩' }"></property>
</bean>