diff --git a/spring-cloud-starter-single-step-batch-job/pom.xml b/spring-cloud-starter-single-step-batch-job/pom.xml
index 2867dcc1..8e223c1e 100644
--- a/spring-cloud-starter-single-step-batch-job/pom.xml
+++ b/spring-cloud-starter-single-step-batch-job/pom.xml
@@ -9,6 +9,12 @@
spring-cloud-starter-single-step-batch-job
+
+ 1.14.3
+ 1.14.3
+ 1.0.8
+
+
org.springframework.boot
@@ -41,6 +47,40 @@
h2
test
+
+ org.springframework.amqp
+ spring-amqp
+
+
+ org.springframework.amqp
+ spring-rabbit
+
+
+ org.testcontainers
+ testcontainers
+ ${test.containers.version}
+ test
+
+
+ org.testcontainers
+ rabbitmq
+ ${test.rabbit.containers.version}
+ test
+
+
+ org.rnorth.duct-tape
+ duct-tape
+ ${test.ducttape.version}
+ test
+
+
+ com.fasterxml.jackson.core
+ jackson-core
+
+
+ com.fasterxml.jackson.core
+ jackson-annotations
+
diff --git a/spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/rabbit/AmqpItemReaderAutoConfiguration.java b/spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/rabbit/AmqpItemReaderAutoConfiguration.java
new file mode 100644
index 00000000..90482a1e
--- /dev/null
+++ b/spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/rabbit/AmqpItemReaderAutoConfiguration.java
@@ -0,0 +1,89 @@
+/*
+ * Copyright 2020-2020 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.springframework.cloud.task.batch.autoconfigure.rabbit;
+
+import java.util.Map;
+
+import org.springframework.amqp.core.AmqpTemplate;
+import org.springframework.amqp.core.Queue;
+import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter;
+import org.springframework.amqp.support.converter.MessageConverter;
+import org.springframework.batch.item.amqp.AmqpItemReader;
+import org.springframework.batch.item.amqp.builder.AmqpItemReaderBuilder;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.autoconfigure.AutoConfigureAfter;
+import org.springframework.boot.autoconfigure.amqp.RabbitProperties;
+import org.springframework.boot.autoconfigure.batch.BatchAutoConfiguration;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.util.StringUtils;
+
+/**
+ * Autconfiguration for a {@code AmqpItemReader}.
+ *
+ * @author Glenn Renfro
+ * @since 2.3
+ */
+@Configuration
+@EnableConfigurationProperties(AmqpItemReaderProperties.class)
+@AutoConfigureAfter(BatchAutoConfiguration.class)
+@ConditionalOnProperty(name = "spring.batch.job.amqpitemreader.enabled",
+ havingValue = "true", matchIfMissing = false)
+public class AmqpItemReaderAutoConfiguration {
+
+ @Autowired(required = false)
+ private RabbitProperties rabbitProperties;
+
+ @Bean
+ public AmqpItemReaderProperties amqpItemReaderProperties() {
+ return new AmqpItemReaderProperties();
+ }
+
+ @ConditionalOnBean(RabbitProperties.class)
+ @Bean
+ public Queue defaultQueue() {
+ if (!StringUtils
+ .hasText(this.rabbitProperties.getTemplate().getDefaultReceiveQueue())) {
+ throw new IllegalArgumentException(
+ "DefaultReceiveQueue must not be empty nor null");
+ }
+ return new Queue(this.rabbitProperties.getTemplate().getDefaultReceiveQueue(),
+ true);
+ }
+
+ @Bean
+ public AmqpItemReader