在 OGNL 中,建议解析重复使用的表达式以提高性能。
在查阅 API 时,我还注意到有一个compileExpression方法:
在彻底搜索了有关编译与解析的信息之后,我能找到的唯一一篇文章是 Struts 文档的一部分,并提到了如何做到这一点,但没有提到它与解析相比的作用。
在什么情况下应该使用编译而不是单独解析,与简单地解析相同的表达式相比,编译表达式是否可以获得显着的性能优势?
从方法签名来看,似乎 Ognl.parseExpression() 产生了一个独立于输入的对象,但 Ognl.compileExpression() 产生了一个依赖于给定输入(根和上下文)的对象。它是否正确?