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(
我们知道我们可以注入自定义消息转换器:
@Bean
MessageConverter messageConverter(){
return new CustomMessageConverter();
}
但是在 ErrorHandler
的情况下它不起作用。为什么 ?我能以任何方式从代码中得出结论吗?
没错。 Spring Boot 的 RabbitAnnotationDrivenConfiguration
不支持该注入。
您必须声明自己的 SimpleRabbitListenerContainerFactory
@Bean
并提供所需的 ErrorHandler
注入,以及所有其他必需的选项,包括 MessageConverter
.
请注意,覆盖开箱即用的 bean 您应该使用 rabbitListenerContainerFactory
名称指定您自己的 bean 以满足条件:
@Bean
@ConditionalOnMissingBean(name = "rabbitListenerContainerFactory")
public SimpleRabbitListenerContainerFactory rabbitListenerContainerFactory(