Отрывок из этого http://www.mulesoft.org/documentation/display/current/Configuring+Java+Components является:Mule Java компонентов и Потокобезопасная
When you specify the class directly on the component or pooled-component element, the PrototypeObjectFactory is used by default, and a new instance is created for each invocation, or a new pooled component is created in the case of the PooledJavaComponent
И я настроен класс Java в качестве компонента Mule Java, как показано ниже:
<component class="com.mycompany.SalesOrderProductsHandler" doc:name="Java" />
. Класс SalesOrderProductsHandler
реализовал org.mule.api.lifecycle.Callable
и имеет одну переменную состояния с именем targetProductsIndex.
Мой вопрос следующим образом:
Будет ли новый экземпляр com.mycompany.SalesOrderProductsHandler
получить каждый раз, когда создается новый запрос приходит?
BTW Я подтвердил, что это все еще работает на Mule 3.6.0 :) –
Просто для подтверждения: здесь каждый вызов означает каждый входящий запрос, не так ли? Если это правильно, могу ли я иметь какое-либо состояние в своем Java-компоненте, не беспокоясь о потокобезопасности? –
«каждый вызов означает каждый входящий запрос» <- скорее всего, да, но, возможно, нет, если вы используете область «cache», «агрегатор» или другие процессоры сообщений маршрутизации ... И да, в этом случае ваш компонент может иметь состояние и не беспокойтесь о безопасности потоков. –