Как обрабатывать исключения из опубликованного события в Spring - PullRequest
0 голосов
/ 02 июля 2018

Мое приложение использует события Spring

@Resource
ApplicationEventPublisher publisher;

publisher.publishEvent(myEvent);

...

@TransactionalEventListener(phase = TransactionPhase.AFTER_COMMIT)
public void handleEvent(MyEvent myEvent)

Есть много таких событий. Есть ли способ справиться с потенциальными исключениями из этих методов подписки?

В идеале аналогично тому, как можно обрабатывать исключения в Web MVC для запросов RequestMapping, т.е.

@ExceptionHandler(Exception.class)

1 Ответ

0 голосов
/ 02 июля 2018

В этом сценарии вы, скорее всего, используете ApplicationEventMulticaster, а именно SimpleApplicationEventMulticaster. ApplicationEventMulticaster на самом деле является просто более мощной версией Publisher и позволяет вам делать такие вещи, как, например, асинхронную публикацию.

Тем не менее, функция, которую вы ищете здесь - это метод #setErrorHandler на Multicaster, где вы можете установить стандартную пружину ErrorHandler, или (вероятно, что вы хотите сделать), наведите курсор на интерфейс ErrorHandler.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...