SpEl就是Spring Expression Language的简称,功能堪称强大,能够进行表达式求值,具备一些lisp语言的特性。现在简单的列举一些例子。
首先,把需要用到的示例类给大家看下
public class Person { private String name; private int age; public Person() { this("Tunie", 25); } public Person(String name, int age) { super(); this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
这个类马上就要用到了。
现在,我来演示下如何利用表达式来取得一个Person实例中的name属性。示例代码如下:
//这段代码将在之后的代码中不再重复出现 ExpressionParser parser = new SpelExpressionParser(); Person person = new Person(); Expression expression2 = parser.parseExpression("getName()"); EvaluationContext context = new StandardEvaluationContext(person); assertEquals("Tunie", expression2.getValue(context));
单元测试通过。在这里我们先是实例化了一个Person对象,然后实例化一个getName()的表达式及一个拥有Person实例的EvaluationContext实例,最后通过表达式的getValue API取得了Person对象的name属性值。
我相信,通过这样一个小小的示例,大家应该会非常快的理解他的用法了。
原文地址:http://my.oschina.net/u/2011113/blog/324862