对于我们的一些流程,我们将有一些输出属性(例如校验和),我们无法通过DataWeave直接生成,因此我们选择使用Java函数计算它们,我们也有可能:
我知道静态方法可能会遇到一些性能问题,因为它们无法进行垃圾回收。这两种选择的优缺点是什么?
答案 0 :(得分:0)
我认为这取决于功能的复杂性。你可以用Java做任何事情,你可以在全局函数中直接使用MVEL - 不需要调用Java静态方法。
使用全局函数的主要好处是你可以使用MEL / MVEL,因为它具有便利的MVEL功能,如属性导航,折叠/投影等,可以使功能更加简洁,并允许您访问Mule变量/道具/有效载荷很容易使用MEL,如#[flowVars。]。
但我认为如果它是一个非常复杂的功能,那么Java组件可能更易于阅读/维护等。此外,Java组件可能更容易模块化并与其他项目分别共享。
一个可能会带来性能上的好处,但可能会忽略不计,或者您可以对其进行分析以查看性能比较。