spring-rabbitmq 中的自动注入自定义 ErrorHandler

Auto-injection custom ErrorHandler in spring-rabbitmq

我们知道我们可以注入自定义消息转换器:

@Bean
MessageConverter messageConverter(){
   return new CustomMessageConverter();
}

但是在 ErrorHandler 的情况下它不起作用。为什么 ?我能以任何方式从代码中得出结论吗?

没错。 Spring Boot 的 RabbitAnnotationDrivenConfiguration 不支持该注入。

您必须声明自己的 SimpleRabbitListenerContainerFactory @Bean 并提供所需的 ErrorHandler 注入,以及所有其他必需的选项,包括 MessageConverter.

请注意,覆盖开箱即用的 bean 您应该使用 rabbitListenerContainerFactory 名称指定您自己的 bean 以满足条件:

@Bean
@ConditionalOnMissingBean(name = "rabbitListenerContainerFactory")
public SimpleRabbitListenerContainerFactory rabbitListenerContainerFactory(