Жизненный цикл MULE — как подключиться к процессу запуска
-
13-09-2019 - |
Вопрос
Я хотел бы иметь возможность создавать несколько каталогов после запуска Mule, но до того, как он запустит какие-либо другие службы.
Я начал просматривать уведомления, но не уверен, что это подходящее место для этого.Мне понадобится доступ к Spring bean-компонентам, поэтому это должно быть после Spring Init, но до того, как начнутся какие-либо соединители и другие процессы.
http://www.mulesource.org/display/MULE2USER/Mule+Server+Notifications
Спасибо.
Решение
В жизненном цикле мула имеется несколько доступных интерфейсов, которые можно использовать для достижения этой цели.
http://www.mulesource.org/docs/site/2.2.1/apidocs/org/mule/api/lifecycle/Startable.html
.../Initialisable.html
По сути, насколько я понимаю, если вы хотите, чтобы что-то произошло при запуске вашего экземпляра мула, вы должны реализовать startable.Если вы хотите, чтобы что-то происходило при инициализации определенного компонента мула, вам следует реализовать инициализируемый.
Другие советы
Очень изящный способ сделать это — создать свой собственный агент, реализовав UMOAgent.
<!-- Enable Agents for Mule -->
<agents>
<!-- The MyAgent provides a convenient place to perform one off actions at startup/shutdown -->
<agent name="MyAgent" className="com.xxx.base.util.MyAgent" />
...
У агентов есть методы start и Stop, которые вызывает Mule, и ваш класс реализации может затем добавить любой код, который вы хотите.
См. ссылку для получения дополнительной информации.http://www.mulesoft.org/documentation/display/MULE2USER/Mule+Agents