2013-03-28 3 views
1

У меня есть вопрос, связанный с использованием настраиваемых обработчиков сообщений как Global vs local.Глобальные и локальные процессоры сообщений

Я определял все пользовательские трансформаторы на глобальном уровне и ссылался на них в потоках мула.

Какая разница в объеме объекта, определенного внутри потока, против одного, объявленного как глобальное и упомянутого в потоке?

Будет ли это воздействовать на память, если процессор сообщений определяется как глобальный, а не внутренний поток?

Помимо возможности повторного использования, есть ли преимущества в определении процессоров как глобальных?

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> 

Эта информация была бы полезной при разработке оптимального решения с точки зрения надежности и надежности памяти.

ответ

2

Локально определенные трансформаторы объявлены как разные бобы в реестре, поэтому существует определенная стоимость при декларировании их локально снова и снова.

Таким образом, предпочтительнее объявлять аналогичные трансформаторы (и компоненты, процессоры сообщений ...) по всему миру.

+0

Что делать, если компонент используется только один раз. Имеет ли значение значение памяти, если я объявляю его глобально вместо локально? – user1760178

+1

Нет, это не имеет значения: в обоих случаях этот единственный компонент будет в качестве одного элемента в реестре. –

+0

Спасибо @ Давид. – user1760178

Смежные вопросы