Модель публикации событий в Spring работает на основе шаблона Observer. 1 В ней есть три основных компонента: 1
- Событие. 1 Событие в Spring представляет собой нечто важное, произошедшее в приложении. 1 Обычно это подклассы ApplicationEvent. 1
- Издатель. 1 Издатель генерирует и транслирует события в контекст Spring. 1 Обычно это делается с помощью интерфейса ApplicationEventPublisher, который предоставляет метод publishEvent(). 1
- Слушатель. 1 Прослушиватели реагируют на определённые события. 1 В Spring они обычно помечаются с помощью @EventListener, который регистрирует метод как обработчик событий для определённого типа события. 1
По умолчанию события в Spring публикуются синхронно, то есть поток издателя блокируется, пока все слушатели не закончат обработку события. 5 Чтобы запустить прослушиватель в асинхронном режиме, нужно использовать аннотацию @Async. 5