diff --git a/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/annotation/RabbitListener.java b/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/annotation/RabbitListener.java index 2aef838e..8eda2048 100644 --- a/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/annotation/RabbitListener.java +++ b/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/annotation/RabbitListener.java @@ -233,4 +233,11 @@ public @interface RabbitListener { */ String concurrency() default ""; + /** + * Set to true or false, to override the default setting in the container factory. + * @return true to auto start, false to not auto start. + * @since 2.0 + */ + String autoStartup() default ""; + } diff --git a/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/annotation/RabbitListenerAnnotationBeanPostProcessor.java b/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/annotation/RabbitListenerAnnotationBeanPostProcessor.java index 4f5b29ae..a196b2d3 100644 --- a/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/annotation/RabbitListenerAnnotationBeanPostProcessor.java +++ b/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/annotation/RabbitListenerAnnotationBeanPostProcessor.java @@ -410,6 +410,10 @@ public class RabbitListenerAnnotationBeanPostProcessor endpoint.setGroup((String) resolvedGroup); } } + String autoStartup = rabbitListener.autoStartup(); + if (StringUtils.hasText(autoStartup)) { + endpoint.setAutoStartup(resolveExpressionAsBoolean(autoStartup)); + } endpoint.setExclusive(rabbitListener.exclusive()); String priority = resolve(rabbitListener.priority()); diff --git a/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/config/AbstractRabbitListenerContainerFactory.java b/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/config/AbstractRabbitListenerContainerFactory.java index 360bf616..81f3d71f 100644 --- a/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/config/AbstractRabbitListenerContainerFactory.java +++ b/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/config/AbstractRabbitListenerContainerFactory.java @@ -340,7 +340,10 @@ public abstract class AbstractRabbitListenerContainerFactory> for more information. ===== Container Conditional Rollback