我想从
errorHandler
中删除 @RabbitListener(queues = "${service.queue.name}", errorHandler = "amqpExceptionHandler")
部分
注释,因为这对我所有的听众来说都很常见。
有没有办法为 RabbitListenerErrorHandler 设置全局配置?
@Component
public class AmqpExceptionHandler implements RabbitListenerErrorHandler {
@Override
public Object handleError(
Message amqpMessage,
org.springframework.messaging.Message<?> message,
ListenerExecutionFailedException exception) {
if (exception.getCause() instanceof MyException) {
// some logic
}
throw exception;
}
}
可以通过元注释实现这一点:https://docs.spring.io/spring-amqp/reference/amqp/receiving-messages/async-annotation-driven/meta.html.
您可能需要重复大多数属性,以便自定义特定的侦听器方法,同时仅在注释中保留所有常见属性。