Spring 表达式语言(简称 「SpEL」)是一种强大的表达式语言,支持在运行时查询和操作对象图。该语言的语法与 Unified EL 相似,但提供了额外的功能,最显著的是 方法调用 基本的字符串模板 功能。

    虽然还有其他几种 Java 表达式语言— OGNL、MVEL 和 JBoss EL 等等—但 Spring 表达式语言的创建是为了给 Spring 社区提供一种支持良好的表达式语言,可以在 Spring 组合的所有产品中使用。它的语言功能是由 Spring 组合中的项目要求驱动的,包括在 Eclipse 的 Spring 工具中支持代码完成的工具要求。也就是说,SpEL 是基于一个技术无关的 API,如果有需要的话,可以集成其他表达式语言的实现。

    虽然 SpEL 是 Spring 组合中表达式评估的基础,但它并不直接与 Spring 联系在一起,可以独立使用。为了自成一体,本章中的许多例子都把 SpEL 当作一种独立的表达式语言来使用。这需要创建一些引导性的基础设施类,如解析器。大多数 Spring 用户不需要处理这些基础结构,而是可以只编写表达式字符串进行评估。这种典型用途的一个例子是将 SpEL 集成到创建 XML 或基于注解的 bean 定义中,如定义 bean 定义的表达式支持中所示

    本章介绍了表达式语言的特点、其 API 以及语言语法。在一些地方,Inventor 和 Society 类被用来作为表达式评估的目标对象。这些类的声明和用于填充它们的数据在本章末尾列出。

    表达式语言支持以下功能: