我的应用程序使用了 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/