class AmqpJobConfiguration {

	@Bean
	public Job job(JobRepository jobRepository, Step step) {
		return new JobBuilder("amqp-config-job", jobRepository).start(step).build();
	}

	@Bean
	public Step step(JobRepository jobRepository, JdbcTransactionManager transactionManager,
			RabbitTemplate rabbitInputTemplate, RabbitTemplate rabbitOutputTemplate) {<FILL_FUNCTION_BODY>}

	/**
	 * Reads from the designated queue.
	 * @param rabbitInputTemplate the template to be used by the {@link ItemReader}.
	 * @return instance of {@link ItemReader}.
	 */
	@Bean
	public ItemReader<String> amqpItemReader(RabbitTemplate rabbitInputTemplate) {
		AmqpItemReaderBuilder<String> builder = new AmqpItemReaderBuilder<>();
		return builder.amqpTemplate(rabbitInputTemplate).build();
	}

	/**
	 * Reads from the designated destination.
	 * @param rabbitOutputTemplate the template to be used by the {@link ItemWriter}.
	 * @return instance of {@link ItemWriter}.
	 */
	@Bean
	public ItemWriter<String> amqpItemWriter(RabbitTemplate rabbitOutputTemplate) {
		AmqpItemWriterBuilder<String> builder = new AmqpItemWriterBuilder<>();
		return builder.amqpTemplate(rabbitOutputTemplate).build();
	}

}

		return new StepBuilder("step", jobRepository).<String, String>chunk(1, transactionManager)
			.reader(amqpItemReader(rabbitInputTemplate))
			.processor(new MessageProcessor())
			.writer(amqpItemWriter(rabbitOutputTemplate))
			.build();
	
<no_super_class>