Search code examples
spring-amqpspring-rabbit

How to Add an Around Advice to RabbitListener


Asked and answered in reponse to Set MDC properties only for rabbitmq events


Solution

  • Add a MethodInterceptor bean and wire it into the container factory:

    @Bean
    MethodInterceptor interceptor(AbstractRabbitListenerContainerFactory<AbstractMessageListenerContainer> factory) {
        MethodInterceptor inter = invocation -> {
            try {
                // do something before
                return invocation.proceed();
            }
            finally {
                // do something after
            }
        };
        factory.setAdviceChain(inter);
        return inter;
    }