If you want to keep using spring boot properties (from org.springframework.boot.autoconfigure.amqp.RabbitProperties) in your application.properties file, you can provide your own RabbitListenerContainerFactory :
@Bean
public CustomRabbitListenerContainerFactory rabbitListenerContainerFactory(
SimpleRabbitListenerContainerFactoryConfigurer configurer, ConnectionFactory connectionFactory, MyContextMessageProcessor messageProcessor) {
CustomRabbitListenerContainerFactory factory = new CustomRabbitListenerContainerFactory(messageProcessor);
configurer.configure(factory, connectionFactory);
return factory;
}
CustomRabbitListenerContainerFactory.java :
public class CustomRabbitListenerContainerFactory
extends org.springframework.amqp.rabbit.config.SimpleRabbitListenerContainerFactory {
private MessagePostProcessor[] messagePostProcessor;
public CustomRabbitListenerContainerFactory(MessagePostProcessor... messagePostProcessor) {
super();
this.messagePostProcessor = messagePostProcessor;
}
@Override
protected void initializeContainer(SimpleMessageListenerContainer instance, RabbitListenerEndpoint endpoint) {
super.initializeContainer(instance, endpoint);
instance.addAfterReceivePostProcessors(messagePostProcessor);
}
}