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