我有一个与自定义消息处理器的使用相关的问题,如全局vs本地。
我一直在全球范围内定义所有自定义变换器,并在骡子流中引用它们。
流程中定义的对象范围与声明为全局且在流程中引用的对象的范围有何不同?
如果将消息处理器定义为全局而不是内部流,是否会对内存产生影响?
除了可重用性之外,将处理器定义为全局还有什么好处吗?
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>
此信息有助于在内存和代码可维护性方面设计最佳解决方案。
答案 0 :(得分:2)
本地定义的变换器在注册表中被声明为不同的bean,因此在一次又一次地在本地声明它们的确有成本。
因此,更喜欢在全球范围内声明类似的变压器(和组件,消息处理器......)。