По сути, вы можете использовать Шаблон стратегии , чтобы представить разных слушателей, которые по-разному реагируют на общее событие.
<bean id="strategy1Listener" />
<bean id="strategy2Listener" />
<bean id="strategy3Listener" />
Затем вы можете ввести составной слушатель, чтобы перебрать других слушателей и пройти через событие и позволить им обработать событие:
<bean id="compositeStrategyListener">
<property name="listeners">
<list>
<ref bean="strategy1Listener" />
<ref bean="strategy2Listener" />
<ref bean="strategy3Listener" />
</list>
</property>
</bean>
С другой стороны истории у вас есть объект, который генерирует / публикует события:
<bean id="eventGenerator">
<property name="eventListener" ref="compositeStrategyListener" />
</bean>
Итак, теперь eventGenerator
публикует сгенерированное событие в compositeStrategyListner
, который выполняет итерацию по слушателями позволяет им обрабатывать событие по-своему.
Вы также можете воспользоваться Spring Task Execution , чтобы настроить способ запуска задачи обработки события.