Spring 表达式语言 (SpEL)

Spring 表达式语言(简称“SpEL”)是一种强大的表达式语言,支持在运行时查询和操作对象图。该语言的语法类似于 Jakarta 表达式语言,但提供了额外功能,最值得注意的是方法调用和基本的字符串模板功能。

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

虽然 SpEL 作为 Spring 组合中表达式求值的基础,但它不直接与 Spring 绑定,可以独立使用。为了自成一体,本章中的许多示例都将 SpEL 视为独立的表达式语言。这需要创建一些引导基础设施类,例如解析器。大多数 Spring 用户无需处理这些基础设施,相反,只需编写要评估的表达式字符串。这种典型用法的一个例子是将 SpEL 集成到创建基于 XML 或注解的 bean 定义中,如 bean 定义的表达式支持所示。

本章涵盖了表达式语言的特性、其 API 及其语言语法。在多个地方,`Inventor` 和 `Society` 类被用作表达式求值的目标对象。这些类的声明和用于填充它们的数据列在本章末尾。

表达式语言支持以下功能

  • 字面量表达式

  • 访问属性、数组、列表和映射

  • 内联列表

  • 内联映射

  • 数组构造

  • 关系运算符

  • 正则表达式

  • 逻辑运算符

  • 字符串运算符

  • 数学运算符

  • 赋值

  • 类型表达式

  • 方法调用

  • 构造函数调用

  • 变量

  • 用户定义函数

  • Bean 引用

  • 三元、Elvis 和安全导航运算符

  • 集合投影

  • 集合选择

  • 模板化表达式

© . This site is unofficial and not affiliated with VMware.