名师讲坛:Spring实战开发(Redis+SpringDataJPA+SpringMVC+SpringSecurity)
上QQ阅读APP看书,第一时间看更新

5.1 Spring表达式基本定义

在Spring中为了方便开发者进行解耦和设计,可以使用字符串来进行一些特殊含义的描述,但是考虑到实际开发的复杂性,Spring开发框架进一步加强了字符串的功能,推出了Spring表达式语言(Spring Expression Language,SpEL),通过SpEL使得字符串不仅仅可以实现一些基础的计算功能,还以根据表达式实现对象实例化或者是进行一些复杂的配置文件的编写。

范例:【mldnspring-base模块】定义Spring表达式。

本程序实现了一个最基础的表达式处理,主要功能是字符串截取处理。最为关键的是字符串中所有的程序代码都可以正常执行,而这就是SpEL的核心所在。要想实现这一功能,需要如下辅助类的支持。

表达式解析器:org.springframework.expression.ExpressionParser。

|- 主要是负责为给定的表达式进行内容的解析操作处理的接口标准。

|- 利用SpEL的标准表达式处理子类SpelExpressionParser为ExpressionParser接口实例化。

表达式执行类:org.springframework.expression.Expression。

|- 通过此类可以得到最终计算结果。

表达式计算:org.springframework.expression.EvaluationContext。

|- 计算处理上下文,主要可以实现一些表达式变量的处理,并且实现表达式计算。

范例:【mldnspring-base模块】在表达式中使用变量。

本程序实现了与之前类似的功能,在定义表达式的时候采用了变量形式#start、#end,这样就可以在进行计算前设置变量内容,以实现表达式计算。