如何在Spring中处理来自已发布事件的异常

时间:2018-07-02 19:24:50

标签: java spring exception-handling

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

*

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

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

@Resource
ApplicationEventPublisher publisher;

publisher.publishEvent(myEvent);

...

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

1 个答案:

答案 0 :(得分:1)

在这种情况下,您可能会使用ApplicationEventMulticaster,特别是SimpleApplicationEventMulticasterApplicationEventMulticaster实际上只是Publisher的一个功能更强大的版本,它使您可以执行诸如异步发布之类的事情。

但是,您要在此处寻找的功能是Multicaster上的#setErrorHandler方法,您可以在其中设置标准的Spring ErrorHandler,或者(可能是您想要的),将自己的内容滚动到ErrorHandler界面上。