对于最新稳定版本,请使用 Spring Framework 7.0.6spring-doc.cadn.net.cn

Spring 表达式语言(SpEL)

Spring 表达式语言(简称 “SpEL”)是一种功能强大的表达式语言,支持在运行时查询和操作对象图。该语言的语法类似于 Unified EL,但提供了额外的功能,尤其是方法调用和基本的字符串模板功能。spring-doc.cadn.net.cn

尽管还有其他几种可用的 Java 表达式语言——例如 OGNL、MVEL 和 JBoss EL 等,但 Spring 表达式语言(SpEL)的创建旨在为 Spring 社区提供一种统一且得到良好支持的表达式语言,可在整个 Spring 产品组合中通用。其语言特性由 Spring 产品组合中各项目的需求驱动,包括在 Spring Tools for Eclipse 中对代码自动补全等工具支持的需求。 尽管如此,SpEL 基于一个与技术无关的 API,如有需要,可集成其他表达式语言的实现。spring-doc.cadn.net.cn

虽然 SpEL 是 Spring 技术栈中表达式求值的基础,但它并不直接依赖于 Spring,也可以独立使用。为了保持自包含性,本章中的许多示例都将 SpEL 视为一种独立的表达式语言来使用。这需要创建一些引导所需的基础设施类,例如解析器。大多数 Spring 用户无需处理这些基础设施,而只需编写用于求值的表达式字符串即可。 这种典型用法的一个例子是将 SpEL 集成到基于 XML 或基于注解的 bean 定义中,如 定义 Bean 时的表达式支持 所示。spring-doc.cadn.net.cn

本章介绍了表达式语言的特性、其 API 以及语言语法。在多处示例中,InventorSociety 类被用作表达式求值的目标对象。这些类的声明以及用于填充它们的数据列在本章末尾。spring-doc.cadn.net.cn

表达式语言支持以下功能:spring-doc.cadn.net.cn