java - 如何处理 Spring 中已发布事件的异常

标签 java spring exception

我的应用程序使用了 Spring 事件

@Resource
ApplicationEventPublisher publisher;

publisher.publishEvent(myEvent);

...

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

有很多这样的事件。有没有办法处理来自这些订阅方法的潜在异常?

理想情况下,与在 Web MVC 中处理 RequestMapping 请求的异常的方式类似,即

@ExceptionHandler(Exception.class)

最佳答案

您可能会使用 ApplicationEventMulticaster在这种情况下,特别是 SimpleApplicationEventMulticaster . ApplicationEventMulticaster 实际上只是 Publisher 的一个功能更强大的版本,它允许您执行异步发布等操作。

但是,您在这里寻找的功能是 #setErrorHandler Multicaster 上的方法,您可以在其中设置标准 Spring ErrorHandler ,或者(可能是你想做的),在 ErrorHandler 接口(interface)上滚动你自己的。

关于java - 如何处理 Spring 中已发布事件的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51142568/

相关文章:

java - Spring:属性文件中的值不会 Autowiring

即使我设置了条件,Spring Cache也不会忽略Null键

android - 另一个 java.lang.IllegalArgumentException : parameter must be a descendant of this view

java - 我可以用像 List< 这样的相同泛型做什么? ...>?

java - 无法使用 Tomcat 5.5 和 Hibernate 连接到数据库

java - 货币异常 : No MonetaryAmountsSingletonSpi loaded

exception - 解码 Analytics 报告的混淆 (Proguard) 异常位置

java - 在多个主机上并行执行

java - 在 Java 中扩展 T 和 SomeInterface<T>

python - 如何捕获 IllegalMonthError