4.SpEL Spring表达式语言
Spring表达式语言(简称“SpEL”)是一种功能强大的表达式语言,支持在运行时查询和操作对象图。语言语法类似于统一EL,但提供了其他功能,最显著的是方法调用和基本的字符串模板化功能。
虽然还有其他几种Java表达式语言可用,即--OGNL、MVEL和JBOSS EL,但是,为了命名一致性,创建了Spring表达式语言,为Spring社区提供了一个支持良好的表达式语言,可以在Spring的所有产品中使用。它的语言特性是由Spring产品组合中项目的需求驱动的,包括基于Eclipse的Spring工具套件中代码完成支持的工具需求。这就是说,SPEL基于technology-agnostic的API,它允许在需要时集成其他表达式语言实现。
虽然SPEL是Spring组合中expression求值的基础,但它不直接与Spring挂钩,可以独立使用。为了自我包含,本章中的许多示例将spel用作独立的表达式语言。这需要创建一些引导基础结构类,如解析器。大多数Spring用户不需要处理这个基础结构,只需要编写表达式字符串进行求值。这种典型用法的一个例子是将spel集成到创建基于XML或注解的bean定义中,如定义bean定义的表达式支持中所示。
本章介绍表达式语言的特性、API及其语言语法。在一些地方,Inventor和Society类被用作表达评估的目标对象。这些类声明和用于填充它们的数据列在本章末尾。
表达式语言支持如下的功能:
Literal expressions
Boolean and relational operators
Regular expressions
Class expressions
Accessing properties, arrays, lists, and maps
Method invocation
Relational operators
Assignment
Calling constructors
Bean references
Array construction
Inline lists
Inline maps
Ternary operator
Variables
User-defined functions
Collection projection
Collection selection
Templated expressions
最后更新于