Вы можете перезаписать значение по умолчанию applicationEventMulticaster
, добавив этот идентификатор компонента в контекст приложения.
Вместо значения по умолчанию SimpleApplicationEventMulticaster
вы можете установить TaskExecutor для этого компонента для выполнения асинхронной публикации событий в нескольких потоках.
Или вы могли бы реализовать свой собственный мультикастер, который выводит, какой прослушиватель событий занимал так много времени или блокировал, как долго и на каких событиях. Это может помочь вам отследить реальную проблему 8-минутного теста.
Интересно, что JavaDoc для SimpleApplicationEventMulticaster, который по умолчанию используется Spring при использовании ApplicationContext, гласит следующее:
По умолчанию все слушатели вызываются в вызывающем потоке. Это допускает опасность того, что прослушиватель-мошенник блокирует все приложение , но добавляет минимальные издержки. Укажите альтернативный TaskExecutor, чтобы слушатели выполнялись в разных потоках, например из пула потоков.