Spring3.x--使用SpEL表达式装配

我们为Bean的属性和构造器参数装配的所有东西都是在Spring的XML配置文件中静态定义的。同样我们装配其他Bean的引用也都是在配置Spring配置文件时就已经确定了。但是,我们为属性装配的值在运行期才能知道,那又如何实现呢?

Spring3引入了Spring表达式语言,SpEL。SpEL是一种强大、简洁的装配Bean的方式,它通过运行期执行的表达式将值装配到Bean的属性或构造器参数中,使用SpEL,可以实现超乎想象的装配效果,这是使用传统的Spring装配方式难以做到的。

SpEL拥有许多特性,包括:使用Bean的ID来引用Bean;调用方法和访问对象的属性;对值进行算术、关系和逻辑运算;正则表达式匹配;集合操作。

1、引用Bean、Properties和方法

引用其他Bean

<property name="instrument" value="#{saxophone}"/>

引用其他Bean的属性

<bean id="carl" class="com.spring.InstrumentList">

<property name="song" value="#{kenny.song}"/>

</bean>

引用其他Bean的方法

<property name="song" value="#{songSelector.selectSong()}"/>

调用UpperCase方法

<property name="song" value="#{songSelector.selectSong().toUpperCase()}"/>

?.跟上面的区别是当selectSong方法返回null将不执行toUpperCase

<property name="song" value="#{songSelector.selectSong()?.toUpperCase()}"/>

2、操作类

<property name="area" value="#{T(java.lang.Math).PI*circle.radius^2}"/>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值