首页 > 解决方案 > Axon - 调用后的 MessageHandlerInterceptor / 处理程序

问题描述

根据文档:“MessageHandlerInterceptor 可以在调用之前和之后向消息处理程序调用添加自定义行为”。

仅在处理程序调用工作之前(处理方法)。

在我的事件处理器类(@ProcessingGroup)上的方法调用之后,如何使用它来拦截调用@EventHandler ?

我正在使用 Axon 4.3.1。

谢谢你。

标签: springspring-bootaxon

解决方案


实现 aMessageHandlerInterceptor时,需要实现以下方法:

Object handle(
    UnitOfWork<? extends T> unitOfWork, 
    InterceptorChain interceptorChain
) throws Exception;

在消息处理之前和之后调用操作的关键InterceptorChain. 在这种情况下,InterceptorChain代表MessageHandlerInterceptor实例链。因此,调用interceptorChain.proceed()将告诉链移动到以下拦截器。如果到达链的末端,Axon 将转到您自己编写的消息处理函数。

因此,在注释方法调用之后执行工作意味着您在执行工作之后执行工作interceptorChain.proceed()

您可以在 中查看 Axon 是如何做到这一点的LoggingInterceptor,您可以在此处找到。


推荐阅读