我有一个关于使用自定义消息处理器作为全局消息处理器还是本地消息处理器的问题。
我一直在全局级别定义所有自定义转换器,并在mule流中引用它们。
在流中定义的对象的作用域与在流中声明为全局并引用的对象的作用域有什么不同?
如果将消息处理器定义为全局而不是内部流,是否会对内存产生影响?
除了可重用性之外,将处理器定义为全局是否有任何好处?
Ex:
Global Way of defining:
<custom-transformer name="mycustom" class="org.MyClass" />
<flow name="myflow">
...
...
<transformer ref="mycustom" />
...
...
</flow>
Local Way of defining:
<flow name="myflow">
...
...
<custom-transformer name="mycustom" class="org.MyClass" />
...
...
</flow>
这些信息将有助于在内存和代码可维护性方面设计最佳解决方案。
本地定义的转换器在注册表中被声明为不同的bean,因此在本地一次又一次地声明它们肯定是有成本的。
因此更倾向于全局声明类似的转换器(以及组件、消息处理器…)。