跳到主要内容
版本:7.0.3

Spring表达式语言(SpEL)

Hunyuan 7b 中英对照 Spring Expression Language (SpEL)

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

虽然还有其他几种Java表达式语言可供选择,例如OGNL、MVEL和JBoss EL等,但Spring表达式语言(Spring Expression Language,简称SpEL)的创建初衷是为了为Spring社区提供一种统一且得到广泛支持的表达式语言,这种语言可以应用于Spring系列产品的各个方面。其语言特性是根据Spring系列产品中的需求来设计的,包括在Spring Tools集成开发环境(IDE)中实现代码补全等功能的需求。需要说明的是,SpEL基于一种与具体技术无关的API(应用程序编程接口),因此在有需要的情况下,也可以集成其他表达式语言的实现。

虽然SpEL是Spring生态系统中表达式评估的基础,但它并不直接依赖于Spring,可以独立使用。为了使示例更加自包含,本章中的许多示例将SpEL视为一种独立的表达式语言来使用。这需要创建一些基础设施类,例如解析器。大多数Spring用户无需处理这些基础设施,只需编写表达式字符串进行评估即可。这种典型用法的一个例子是将SpEL集成到基于XML或注解的Bean定义中,如用于定义Bean定义的表达式支持所示。

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

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

  • 字面量表达式
  • 访问属性、数组、列表和映射
  • 内联列表
  • 内联映射
  • 数组构造
  • 关系运算符
  • 正则表达式
  • 逻辑运算符
  • 字符串运算符
  • 数学运算符
  • 赋值
  • 类型表达式
  • 方法调用
  • 构造函数调用
  • 变量
  • 用户定义函数
  • Bean引用
  • 三元运算符、Elvis运算符和安全导航运算符
  • 集合投影
  • 集合选择
  • 模板表达式

部分总结