SpEL
- Spring表达式语言(简称SpEL):是一个支持运行时查询和操作对象图的强大表达式语言。
- 语法类似于EL:SpEL使用 #{...} 作为界定符,所有在大框号中的字符都将被认为是SpEL
- SpEL为bean的属性进行动态赋值提供了便利。
通过SpEL可以实现
- 通过bean的id对bean进行引用
- 调用方法以及引用对象中的属性
- 计算表达式的值
- 正则表达式的匹配
下面示例中演示显示使用SpEL常量值和引用其他bean的方式
配置文件如下:
<bean id="flowerBean" class="com.pfSoft.spel.Flower" p:flowerName="rose" p:color="#{'红色'}" p:price="300"></bean> <!-- 显示了如何通过SpEL引用其他的bean,和其他bean的属性 --> <bean id="shopBean" class="com.pfSoft.spel.Shop" p:shopName="心情物语花店" p:price="#{flowerBean.price}" p:myFower="#{flowerBean}" ></bean>
测试代码:
@Test public void testSpel() { Flower flower= (Flower) applicationContext.getBean("flowerBean"); Shop shop= (Shop) applicationContext.getBean("shopBean"); System.out.println(flower.toString()); System.out.println(shop.toString()); }
输出:
Flower [flowerName=rose, price=300.0, color=红色]
Shop [shopName=心情物语花店, myFower=Flower [flowerName=rose, price=300.0, color=红色], price=300.0]