Я пытаюсь реализовать фреймворк событий с помощью событий spring. Я узнал, что поведение по умолчанию в структуре событий spring является синхронизацией. Но при инициализации контекста spring, если он находит bean с id applicationEventMulticaster, он ведет Async.
Теперь я хочу, чтобы в моем приложении были как издатели событий sync, так и async, потому что некоторые события должны быть опубликованы в синхронизации. Я попытался настроить multicaster события синхронизации с помощью SysncTaskExecutor, но я не могу найти способ вставить его в свойство AsyncEventPublisher applicationEventPublisher. Мой конфигурационный файл spring приведен ниже
<bean id="taskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor" destroy-method="shutdown">
<property name="corePoolSize" value="5" />
<property name="maxPoolSize" value="10" />
<property name="WaitForTasksToCompleteOnShutdown" value="true" />
</bean>
<bean id="syncTaskExecutor" class="org.springframework.core.task.SyncTaskExecutor" />
<bean id="customEventPublisher" class="x.spring.event.CustomEventPublisher" />
<bean id="customEventHandler" class="x.spring.event.CustomEventHandler" />
<bean id="eventSource" class="x.spring.event.EventSource" />
<bean id="responseHandler" class="x.spring.event.ResponseHandler" />
<bean id="syncEventSource" class="x.spring.event.syncEventSource" />
<bean id="applicationEventMulticaster" class="org.springframework.context.event.SimpleApplicationEventMulticaster">
<property name="taskExecutor" ref="taskExecutor" />
</bean>
<bean id="syncApplicationEventMulticaster" class="org.springframework.context.event.SimpleApplicationEventMulticaster">
<property name="taskExecutor" ref="syncTaskExecutor" />
</bean>
Может ли кто-нибудь помочь мне здесь?