Java spEL(Spring表达式语言)有哪些有效用途?

Java spEL(Spring表达式语言)有哪些有效用途?,java,spring,Java,Spring,我正在研究spring表达式语言,如果您使用它来配置xml文件,它似乎非常有用。但是,参考文档提供了许多使用以下代码的示例: ExpressionParser parser = new SpelExpressionParser(); String name = parser.parseExpression 我什么时候以及为什么要使用它,因为我可以使用常规java来完成所有的工作。我是否遗漏了SpelExpressionParser可能很方便的一些功能或其他用途?spEL还有其他我不知道的用例

我正在研究spring表达式语言,如果您使用它来配置xml文件,它似乎非常有用。但是,参考文档提供了许多使用以下代码的示例:

ExpressionParser parser = new SpelExpressionParser();

String name = parser.parseExpression

我什么时候以及为什么要使用它,因为我可以使用常规java来完成所有的工作。我是否遗漏了SpelExpressionParser可能很方便的一些功能或其他用途?spEL还有其他我不知道的用例吗?

您可以使用spEL作为Java反射的简化替代方案。它为您减少了大量代码。
我在工作中遇到的一个用例是将深层对象图展平为名称-值对,以便进行索引和查找

我们的客户可以扩展对象图,在这种情况下,还应为附加属性编制索引。通过使用SpEL,客户只需要在某些属性文件中编写表达式,框架代码负责提取新数据


所有这些都是SpEL的潜在用例,增加了简单性,减少了代码。

为了在java中计算任意运行时表达式,您需要使用编译框架,创建一个类,编译它,加载它,绑定它,执行它

表达式语言和/或脚本消除了许多与您试图解决的问题不直接相关的额外工作。使用哪个EL最有意义取决于几个因素