对于最新的稳定版本,请使用 Spring AMQP 3.2.0spring-doc.cadn.net.cn

添加自定义HandlerMethodArgumentResolver至 @RabbitListener

从版本 2.3.7 开始,您可以添加自己的HandlerMethodArgumentResolver并解析自定义方法参数。 您只需实施RabbitListenerConfigurer和使用方法setCustomMethodArgumentResolvers()来自类RabbitListenerEndpointRegistrar.spring-doc.cadn.net.cn

@Configuration
class CustomRabbitConfig implements RabbitListenerConfigurer {

    @Override
    public void configureRabbitListeners(RabbitListenerEndpointRegistrar registrar) {
        registrar.setCustomMethodArgumentResolvers(
				new HandlerMethodArgumentResolver() {

					@Override
					public boolean supportsParameter(MethodParameter parameter) {
						return CustomMethodArgument.class.isAssignableFrom(parameter.getParameterType());
					}

					@Override
					public Object resolveArgument(MethodParameter parameter, org.springframework.messaging.Message<?> message) {
						return new CustomMethodArgument(
								(String) message.getPayload(),
								message.getHeaders().get("customHeader", String.class)
						);
					}

				}
			);
    }

}