非Controller的SpringBoot异常拦截器
non-Controller SpringBoot exception interceptor
我有一个没有控制器端点的 spring 启动微服务。它完全在使用 inbound-channel-adapter
查询数据库并在必要时执行某些服务操作的工作流上运行。
我想拦截所有异常,并在适当的时候明智地向相关方发送警报。
`@ControllerAdvice 不会削减它,因为没有控制器。
关于如何通过 ExceptionHandler 或 Filter 或其他方式捕获异常的任何建议?
我们的应用程序使用 org.springframework.integration.handler.LoggingHandler 来记录异常,扩展它可能是一个选项。我不想让我的所有服务都扩展一个定义 @ExceptionHandler
.
的基础 class
什么是 "spring way" 从工作流渠道捕获异常并将通知 (email/slack/otherwise) 发送给适当的用户?
正如 Martin 在他的评论中指出的那样,使用 errorChannel
方法 Spring 集成来处理流程中的异常。请参阅 inbound-channel-adapter
上的 error-channel
选项。默认情况下它是 errorChannel
,它确实有一个 LoggingHandler
作为订阅者。您可以保持原样使用该全局 errorChannel
,并只拥有您自己的 service-activator
作为订阅者。或者您可以配置您自己的、特定于流的错误通道及其订阅者。
在文档中查看更多信息:
我有一个没有控制器端点的 spring 启动微服务。它完全在使用 inbound-channel-adapter
查询数据库并在必要时执行某些服务操作的工作流上运行。
我想拦截所有异常,并在适当的时候明智地向相关方发送警报。
`@ControllerAdvice 不会削减它,因为没有控制器。
关于如何通过 ExceptionHandler 或 Filter 或其他方式捕获异常的任何建议?
我们的应用程序使用 org.springframework.integration.handler.LoggingHandler 来记录异常,扩展它可能是一个选项。我不想让我的所有服务都扩展一个定义 @ExceptionHandler
.
什么是 "spring way" 从工作流渠道捕获异常并将通知 (email/slack/otherwise) 发送给适当的用户?
正如 Martin 在他的评论中指出的那样,使用 errorChannel
方法 Spring 集成来处理流程中的异常。请参阅 inbound-channel-adapter
上的 error-channel
选项。默认情况下它是 errorChannel
,它确实有一个 LoggingHandler
作为订阅者。您可以保持原样使用该全局 errorChannel
,并只拥有您自己的 service-activator
作为订阅者。或者您可以配置您自己的、特定于流的错误通道及其订阅者。
在文档中查看更多信息: