我正在研究spring表达式语言,如果您正在使用配置xml文件,它似乎非常有用。但是,参考文档提供了大量使用以下代码的示例:
ExpressionParser parser = new SpelExpressionParser();
String name = parser.parseExpression我什么时候以及为什么要使用它,因为我可以使用常规的java来做所有的事情。我是不是遗漏了一些SpelExpressionParser可以派上用场的特性或其他用途?有没有我不知道的spEL的其他用例?
发布于 2011-12-26 01:22:05
您可以使用SpEL作为Java反射的简化替代方案。它为你减少了很多代码。
我在工作中遇到的一个用例是将深层对象图展平为名称-值对,以用于索引和查找目的。
对象图可以由我们的客户扩展,在这种情况下,额外的属性也应该被索引。通过使用SpEL,客户只需要在一些属性文件中编写表达式,框架代码就会负责提取新数据。
所有的use-cases of Java reflection也是SpEL的潜在用例,增加了简单性和减少了代码。
发布于 2011-12-26 02:41:43
为了在java中计算任意的运行时表达式,您需要使用编译框架,创建一个类,编译它,加载它,绑定它,执行它,...
表达式语言和/或脚本消除了许多与您试图解决的问题不直接相关的额外工作。使用哪个EL最有意义取决于几个因素。
https://stackoverflow.com/questions/8630549
复制相似问题