使用容器的
adviceChain。假设您正在使用Boot 2.0和简单的容器工厂,请覆盖boot的工厂以添加建议…
@SpringBootApplicationpublic class So49770881Application { public static void main(String[] args) { SpringApplication.run(So49770881Application.class, args); } @Bean(name = "rabbitListenerContainerFactory") public SimpleRabbitListenerContainerFactory simpleRabbitListenerContainerFactory( SimpleRabbitListenerContainerFactoryConfigurer configurer, ConnectionFactory connectionFactory) { SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory(); configurer.configure(factory, connectionFactory); factory.setAdviceChain(new MDCAdvice()); return factory; } public static class MDCAdvice implements MethodInterceptor { @Override public Object invoke(MethodInvocation invocation) throws Throwable { // pre process try { return invocation.proceed(); } finally { // post process } } }}


