spEL(Spring Expression Language)的一些有效用途是什么?

时间:2011-12-25 16:59:13

标签: java spring

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

ExpressionParser parser = new SpelExpressionParser();

String name = parser.parseExpression

我何时以及为什么要使用它,因为我可以使用常规java来完成所有操作。我是否缺少SpelExpressionParser可以使用的一些功能或其他用途?是否还有其他用于spEL的用例我不知道?

2 个答案:

答案 0 :(得分:11)

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

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

所有use-cases of Java reflection也是SpEL的潜在用例,增加了简洁性并减少了代码。

答案 1 :(得分:2)

为了评估java中的任意运行时表达式,你需要使用编译框架,创建一个类,编译它,加载它,绑定它,执行它,......

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