From 4581c5a27345eb4b2e15426a2ec83068171c8736 Mon Sep 17 00:00:00 2001 From: Dave Syer Date: Tue, 7 Jul 2015 13:50:32 +0100 Subject: [PATCH] Rationalize AMQP sample --- .../docker-compose.yml | 5 ++ .../amqp/SampleAmqpSimpleApplication.java | 46 +++++++------------ .../src/main/java/sample/amqp/Sender.java | 12 ----- 3 files changed, 21 insertions(+), 42 deletions(-) create mode 100644 spring-boot-samples/spring-boot-sample-amqp/docker-compose.yml diff --git a/spring-boot-samples/spring-boot-sample-amqp/docker-compose.yml b/spring-boot-samples/spring-boot-sample-amqp/docker-compose.yml new file mode 100644 index 0000000000..267fb2ace5 --- /dev/null +++ b/spring-boot-samples/spring-boot-sample-amqp/docker-compose.yml @@ -0,0 +1,5 @@ +rabbitmq: + image: rabbitmq + ports: + - "5672:5672" + - "15672:15672" diff --git a/spring-boot-samples/spring-boot-sample-amqp/src/main/java/sample/amqp/SampleAmqpSimpleApplication.java b/spring-boot-samples/spring-boot-sample-amqp/src/main/java/sample/amqp/SampleAmqpSimpleApplication.java index fa994c3307..2036238336 100644 --- a/spring-boot-samples/spring-boot-sample-amqp/src/main/java/sample/amqp/SampleAmqpSimpleApplication.java +++ b/spring-boot-samples/spring-boot-sample-amqp/src/main/java/sample/amqp/SampleAmqpSimpleApplication.java @@ -16,49 +16,35 @@ package sample.amqp; -import org.springframework.amqp.core.AmqpTemplate; -import org.springframework.amqp.rabbit.connection.ConnectionFactory; -import org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer; -import org.springframework.amqp.rabbit.listener.adapter.MessageListenerAdapter; -import org.springframework.beans.factory.annotation.Autowired; +import java.util.Date; + +import org.springframework.amqp.core.Queue; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.Bean; -import org.springframework.scheduling.annotation.ScheduledAnnotationBeanPostProcessor; +import org.springframework.messaging.handler.annotation.Payload; +import org.springframework.scheduling.annotation.EnableScheduling; @SpringBootApplication +@RabbitListener(queues = "foo") +@EnableScheduling public class SampleAmqpSimpleApplication { - @Autowired - private AmqpTemplate amqpTemplate; - - @Autowired - private ConnectionFactory connectionFactory; - - @Bean - public ScheduledAnnotationBeanPostProcessor scheduledAnnotationBeanPostProcessor() { - return new ScheduledAnnotationBeanPostProcessor(); - } - @Bean public Sender mySender() { return new Sender(); } @Bean - public SimpleMessageListenerContainer container() { - SimpleMessageListenerContainer container = new SimpleMessageListenerContainer( - this.connectionFactory); - Object listener = new Object() { - @SuppressWarnings("unused") - public void handleMessage(String foo) { - System.out.println(foo); - } - }; - MessageListenerAdapter adapter = new MessageListenerAdapter(listener); - container.setMessageListener(adapter); - container.setQueueNames("foo"); - return container; + public Queue fooQueue() { + return new Queue("foo"); + } + + @RabbitHandler + public void process(@Payload String foo) { + System.out.println(new Date() + ": " + foo); } public static void main(String[] args) throws Exception { diff --git a/spring-boot-samples/spring-boot-sample-amqp/src/main/java/sample/amqp/Sender.java b/spring-boot-samples/spring-boot-sample-amqp/src/main/java/sample/amqp/Sender.java index 4d8f0e1980..60310f161f 100644 --- a/spring-boot-samples/spring-boot-sample-amqp/src/main/java/sample/amqp/Sender.java +++ b/spring-boot-samples/spring-boot-sample-amqp/src/main/java/sample/amqp/Sender.java @@ -16,10 +16,6 @@ package sample.amqp; -import javax.annotation.PostConstruct; - -import org.springframework.amqp.core.AmqpAdmin; -import org.springframework.amqp.core.Queue; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; @@ -29,14 +25,6 @@ public class Sender { @Autowired private RabbitTemplate rabbitTemplate; - @Autowired - private AmqpAdmin amqpAdmin; - - @PostConstruct - public void setUpQueue() { - this.amqpAdmin.declareQueue(new Queue("foo")); - } - @Scheduled(fixedDelay = 1000L) public void send() { this.rabbitTemplate.convertAndSend("foo", "hello");