|
对于最新的稳定版本,请使用 Spring Framework 7.0.6! |
Spring表达式语言(SpEL)
Spring 表达式语言(“SpEL” 简称)是一种强大的表达式语言,它在运行时支持对对象图进行查询和操作。该语言的语法类似于统一 EL,但提供了额外的功能,尤其是方法调用和基本的字符串模板功能。
虽然有几种其他可用的Java表达式语言——例如 OGNL、MVEL 和 JBoss EL——Spring 表达式语言(SpEL)被创建出来,以向 Spring 社区提供一种统一且得到良好支持的表达式语言,该语言可以用于 Spring 产品组合中的所有产品。其语言特性由 Spring 产品组合中的项目需求驱动,包括在 Eclipse 的 Spring 工具 中的代码完成支持的工具要求。 当然,SpEL 基于一种与技术无关的 API,如果需要的话,可以集成其他表达式语言实现。
虽然SpEL是Spring产品组合中表达式评估的基础,但它并不直接与Spring绑定,可以独立使用。为了自包含,本章中的许多示例将SpEL当作独立的表达式语言来使用。这需要创建一些引导基础设施类,例如解析器。大多数Spring用户不需要处理这些基础设施,而是可以仅编写用于评估的表达式字符串。这种典型用法的一个例子是将SpEL集成到创建基于XML或注解的bean定义中,如 用于定义bean定义的表达式支持所示。
本章介绍表达式语言的功能、其API及其语言语法。在多个地方,Inventor和Society类被用作表达式求值的目标对象。这些类的声明以及用于填充它们的数据列在本章末尾。
表达式语言支持以下功能:
-
字面表达式
-
布尔和关系运算符
-
正则表达式
-
类表达式
-
访问属性、数组、列表和映射
-
方法调用
-
分配
-
调用构造函数
-
Bean引用
-
数组构造
-
内联列表
-
内联映射
-
三元运算符
-
变量
-
用户定义的函数
-
集合投影
-
集合选择
-
模板表达式