Вы правы в том, что Справочное руководство все еще нуждается в некоторых улучшениях @ bleh10 - могу вас заверить, над ними работают, команда просто разбросана относительно слабо.
В отсутствиепример поиска, думаю, я могу дать вам некоторые рекомендации.
То, что вы ищете, - это реализация MessageHandlerInterceptor
, специально для типа EventMessage
.Как следует из названия, он перехватывает сообщения перед обработкой, что прекрасно соответствует поставленному вопросу.
Во-вторых, вам, очевидно, нужно место для их настройки.В приложении Axon техническим аспектом доставки событий для ваших @EventHandler
аннотированных методов является обработчик событий.Таким образом, он отвечает за обеспечение того, чтобы сообщения событий, проходящие через него, перехватывались по желанию.
Следовательно, место для настройки вашего EventMessage
MessageHandlerInterceptor
находится на реализации EventProcessor
, которую вы используете.выбран.Чтобы обеспечить заданный компонент обработки событий в определенном EventProcessor
, вы можете указать его группу обработки, пометив класс аннотацией @ProcessingGroup
.
С этого момента вы можете легко настроить конкретные свойства дляваш обработчик событий, используя EventProcessingConfigurer
.Более конкретно, я бы предложил использовать для этого метод EventProcessingConfigurer#registerHandlerInterceptor(String, Function<Configuration, MessageHandlerInterceptor<? super EventMessage<?>>>)
.
Первый параметр String
предназначен для описания имени вашей группы обработки.Второй - Function
, который получает Аксон Configuration
и должен выдать MessageHandlerInterceptor
, который может иметь дело с классом EventMessage
.
Надеюсь, это поможет вам!