Axon - MessageHandlerInterceptor / handler после вызовов - PullRequest
1 голос
/ 24 апреля 2020

Согласно документации: «MessageHandlerInterceptor может добавить настраиваемое поведение к вызовам обработчика сообщений как до, так и после вызова».

Только до того, как работает вызов обработчика (метод handle).

Как я могу использовать его для перехвата вызова @EventHandler после вызова метода в моем классе обработчика событий (@ProcessingGroup)?

Я использую Axon 4.3.1 .

Спасибо.

1 Ответ

3 голосов
/ 24 апреля 2020

При реализации MessageHandlerInterceptor вам необходимо реализовать следующий метод:

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

Ключ, когда дело доходит до вызова операций до и после обработки сообщения, равен , когда вы взаимодействовать с InterceptorChain. InterceptorChain представляет цепочку экземпляров MessageHandlerInterceptor в этом случае. Таким образом, вызов interceptorChain.proceed() скажет цепочке перейти к следующему перехватчику. Если достигнут конец цепочки, Аксон перейдет к функции обработки сообщений, которую вы написали самостоятельно.

Таким образом, выполнение работы после interceptorChain.proceed() означает, что вы выполняете работу после аннотированный вызов метода.

Вы можете увидеть, как Аксон делает это сам в LoggingInterceptor, который вы можете найти здесь .

...