繁体   English   中英

Mule 3.7 / 3.8中的Java组件与全局函数

[英]Java component vs global functions in Mule 3.7/3.8

对于我们的某些流程,我们将具有一些无法直接通过DataWeave生成的输出属性(例如,校验和),因此我们选择使用Java函数来计算它们,并且我们也有很多可能:

  • 使用Java组件,然后使用转换器类将结果放在变量上
  • 定义一个全局函数,该全局函数从类中调用静态方法并在“转换消息”组件中使用

我知道静态方法会带来一些性能问题,因为它们无法被垃圾收集。 这两个选择的优缺点是什么?

我认为这取决于功能的复杂性。 您可以使用Java进行的任何操作,都可以在全局函数中直接使用MVEL进行-无需调用Java静态方法。

使用全局函数的主要好处是,您可以使用MEL / MVEL,由于方便的MVEL功能(如属性导航,折叠/投影等),您可以使函数的冗长程度降低很多,并允许您访问Mule vars / props / payload像#[flowVars。]一样轻松使用MEL。

但是我认为,如果它是一个非常复杂的功能,那么Java组件可能会更易于阅读/维护等。另外,Java组件也可能更易于模块化和分别与其他项目共享。

彼此之间可能会有性能上的好处,但可能微不足道,或者您可以对其进行概要分析以查看性能比较。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM