之前我们讲的所有配置,比如属性的注入都是在XML中静态定义的,事先知道各属性的属性值。但是如果这些值只有在运行期间才知道,那么我们该如何实现?
从Spring3.0开始,框架就引入了表达式语言Spring Expression Language,这是一款简洁、强大的Bean的装配方式,通过运行期间执行表达式将值装配到Bean的属性或构造函数的参数中。
SpEL拥有多种特性:
使用Bean的ID来引用Bean:
调用方法和访问对象的属性;
对值进行算术、关系和逻辑运算;
正则表达式的匹配;
集合的操作;
装配字面值:
使用标记#{}装配SqEL表达式,花括弧里的内容就是表达式的内容。
<bean id="player" class="com.cm2easy.miki.example.chapter1.Player">
<property name="name" value="#{'林丹'}" />
<property name="age" value="#{33}" />
<property name="subject" value='#{"羽毛球"}' />
<property name="trainer" ref="trainer" />
</bean>
上面分别是String类型、数字类型的值的装配,注意String类型单引号的用法。