Spring3引入了Spring表达式语言(Spring Expression Language,SpEL)。SpEL是一种强大的、简洁的装配Bean的方式,它通过运行期执行的表达式将值装配到Bean的属性或构造器参数中。
我们可以在<property>元素的value属性中使用#{}界定符将值装配到Bean的属性中。
<property name="count" value="#{5}" />
浮点型数字一样可以出现在SpEL表达式中。
<property name="frequency" value="#{89.7}" />
表达式中的数字也可以实用科学计数法。
<property name="capacity" value="#{1e4}" />
String类型的字面值可以使用单引号或者双引号作为字符串界定符。
<property name="name" value="#{'moonlit'}" />
或者
<property name="name" value='#{"moonlit"}' />
还可以使用布尔值true和false。
<property name="enabled" value="#{true}" />
<bean id="poem" class="com.moonlit.myspring.Poem" /> <bean id="poet" class="com.moonlit.myspring.Poet"> <property name="poem" value="#{poem}"> </bean>
还可以通过SpEL获得bean的对象。
<property name="poem" value="#{poet.poem}" />
还可以通过SpEL获得bean的对象。
<property name="poem" value="#{poet.getPoem()}" />
<property name="multiplier" value="#{T(java.lang.Math).PI}" /> <property name="randomNumber" value="#{T(java.lang.Math).random()}" />
![](https://i-blog.csdnimg.cn/blog_migrate/f58f3b9f0ae4f39dd16d486e087fabc2.png)