ApplicationEventPublisher.publishEvent() — синхронно вызывает всех слушателей в той же транзакции. Если @EventListener бросает exception — откатывается основная транзакция. @Async @EventListener — асинхронно, вне транзакции. @TransactionalEventListener(phase=AFTER_COMMIT) — слушатель вызывается после коммита, вне транзакции (нужна @Transactional(propagation=REQUIRES_NEW) если делает DB операции). @TransactionalEventListener с BEFORE_COMMIT — в той же транзакции перед коммитом. Важно выбрать правильную фазу для надёжности.
Как работает транзакционный контекст при использовании Spring Events?
Senior
269 просмотровAFK Offer AI
Для чего используют Spring Batch и что такое Job, Step, ItemReader?