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属性值。
我相信,通过这样一个小小的示例,大家应该会非常快的理解他的用法了。