java - 全局消息处理器与本地消息处理器

标签 java scope global-variables mule

我有一个与自定义消息处理器的全局与本地使用相关的问题。

我一直在全局级别定义所有自定义转换器,并在 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,因此一次又一次在本地声明它们肯定会产生成本。

因此更喜欢在全局范围内声明类似的转换器(以及组件、消息处理器...)。

关于java - 全局消息处理器与本地消息处理器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15687937/

相关文章:

c++ - 我怎样才能避免把这个变量放在堆栈上?

java - 了解 JPA 延迟加载

java - EJB 3.0 托管 bean 注入(inject)和数据库连接关闭

javascript - 将整个 Javascript 文件包装在像 “(function(){ … })()” 这样的匿名函数中的目的是什么?

c - 删除节点 - 链表 - C

Jquery:变量作为 ID 选择器不起作用

java - 如何在JAVA中使返回值不可变

java - 在 windows/linux 上连接和断开网络连接

javascript - Chrome 控制台已经声明变量抛出 let 的 undefined reference 错误

python - 奇怪的行为问题