spring - Axon - 调用后的 MessageHandlerInterceptor / 处理程序
问题描述
根据文档:“MessageHandlerInterceptor 可以在调用之前和之后向消息处理程序调用添加自定义行为”。
仅在处理程序调用工作之前(处理方法)。
在我的事件处理器类(@ProcessingGroup)上的方法调用之后,如何使用它来拦截调用@EventHandler ?
我正在使用 Axon 4.3.1。
谢谢你。
解决方案
实现 aMessageHandlerInterceptor
时,需要实现以下方法:
Object handle(
UnitOfWork<? extends T> unitOfWork,
InterceptorChain interceptorChain
) throws Exception;
在消息处理之前和之后调用操作的关键是与InterceptorChain
. 在这种情况下,InterceptorChain
代表MessageHandlerInterceptor
实例链。因此,调用interceptorChain.proceed()
将告诉链移动到以下拦截器。如果到达链的末端,Axon 将转到您自己编写的消息处理函数。
因此,在注释方法调用之后执行工作意味着您在执行工作之后执行工作。interceptorChain.proceed()
您可以在 中查看 Axon 是如何做到这一点的LoggingInterceptor
,您可以在此处找到。
推荐阅读
- php - 使用 MariaDB 10.3.9 编译 PHP-7.1.20 时出错
- azure-devops - Azure DevOps (VSTS) 无法创建公共项目
- go - S3 签名 URL 失败
- java - 如何计算二维矢量场的散度和卷曲?
- sql - 带有 WHERE 子句的 VBA SQL 查询
- dart - 在 Flutter 中获取 BuildContext 以进行本地化
- python - Django:如何以不可怕的方式查询子、孙等记录
- javascript - 如何使用动态生成的 url 使用 Jquery getScript 缓存
- java - 设置边距时,相对布局中的按钮会被压扁
- javascript - 使用javascript在源代码中更改页面加载时的域名