Spring3开发实战 之 第八章:Spring3的表达式语言(三)

2014-11-24 08:41:37 · 作者: · 浏览: 3
复制到剪贴板打印
eva luationContext context1 = new Standardeva luationContext();
ExpressionParser parser = new SpelExpressionParser();
context1.setVariable("collection", collection);
Collection result1 =
parser.parseExpression("#collection. [#this.uuid.equals('u1')]").getValue(context1, Collection.class);

//测试Map筛选

java代码:
查看复制到剪贴板打印
eva luationContext context1 = new Standardeva luationContext();
ExpressionParser parser = new SpelExpressionParser();
context1.setVariable("map", map);
Map result1 =
parser.parseExpression("#map. [#this.key=='u1']").getValue(context1, Map.class);
nXml风格的配置
SpEL支持在Bean定义时使用,默认使用“#{SpEL表达式}”表示,不允许嵌套。其中“#root”根对象默认可以认为是ApplicationContext,获取根对象属性其实是获取容器中的Bean。
nXml风格的配置示例----通过SpEL表达式设置值

java代码:
查看复制到剪贴板打印



Xml风格的配置示例----通过SpEL表达式参照其他的Bean

java代码:
查看复制到剪贴板打印






上面的t1就会被解析成为参照t1这个Bean,当然也可以使用@t1来表示。
注解风格的配置
使用@Value注解来指定SpEL表达式,该注解可以放到字段、方法及方法参数上。 但是要在配置文件中使用 来开启对注解的支持。示例如下:

java代码:
查看复制到剪贴板打印
public class SpELBean {
@Value("#{ T(java.lang.Math).random() * 100.0 }")
private String value;
//setter和getter由于篇幅省略,自己写上
}

作者:jinnianshilongnian