Skip to content

语言参考 (Language Reference)

本节介绍 Spring 表达式语言的工作原理。

章节摘要


补充教学

1. 为什么 SpEL 如此重要?

SpEL 不仅仅是一个简单的字符串解析工具,它是 Spring 框架的“胶水”。它允许你在配置(XML 或注解)中使用动态逻辑。

  • 解耦:你可以在不修改代码的情况下,通过修改配置文件中的表达式来改变运行行为。
  • 灵活性:支持几乎所有的 Java 特性(方法调用、构造、逻辑运算等),使得配置具有了编程的能力。

2. 学习路径建议

由于语言参考内容非常丰富,建议按照以下优先级进行学习:

  1. 核心基础:字面量、属性访问、索引器(最常用的 @Value 场景)。
  2. 增强安全安全导航运算符 (?.)。这是解决 NullPointerException 的利器,面试中经常提及。
  3. 集合神器集合投影 (![]) 和 集合选择 (?[])。在处理列表数据时,它们能让你的代码从几行循环简写为一行表达式。
  4. 特殊符号Elvis 运算符 (?:)。它是三元运算符的简写形式,用于提供默认值。

3. SpEL 与 OGNL 的区别

如果你以前用过 Struts2,可能熟悉 OGNL。

  • SpEL 的语法在很多方面与 OGNL 相似,但 SpEL 是原生集成在 Spring 容器中的,能够直接访问 Spring 管理的 Bean(使用 @beanName 语法)。
  • SpEL 拥有更好的性能,特别是在开启了编译模式(Compiled Mode)的情况下。

Based on Spring Framework.