перехватчик исключений SpringBoot без контроллера - PullRequest
0 голосов
/ 17 марта 2020

У меня есть микросервис с пружинной загрузкой без конечных точек контроллера. Он полностью работает в рабочем процессе, используя inbound-channel-adapter для запросов к базам данных и выполнения некоторых действий службы при необходимости.

Я хотел бы перехватить все исключения и рассудительно при необходимости уведомить соответствующие стороны.

`@ ControllerAdvice не обрезает его, потому что нет контроллеров.

Любые рекомендации о том, как перехватить исключения через ExceptionHandler или Filter или другими способами? Наше приложение использует org.springframework.integration.handler.LoggingHandler для регистрации исключений, расширение которых может быть возможным. Я бы предпочел не допускать, чтобы все мои сервисы расширяли один базовый класс, который определяет @ExceptionHandler.

Что такое «весенний способ» перехватывать исключения из каналов рабочего процесса и отправлять уведомления (email / slack / иначе ) соответствующему пользователю?

1 Ответ

1 голос
/ 17 марта 2020

Как отмечает Мартин в своем комментарии, Spring Integration использует подход errorChannel для обработки исключений в потоке. См. Параметр error-channel для этого inbound-channel-adapter. Это errorChannel по умолчанию, и он действительно LoggingHandler в качестве подписчика. Вы можете остаться с этим глобальным errorChannel как есть и просто иметь свой собственный service-activator в качестве подписчика. Или вы можете настроить свой собственный, определяемый потоком c канал ошибок и его подписчик.

См. Больше в документации:

https://docs.spring.io/spring-integration/docs/current/reference/html/error-handling.html#error -обработка

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