Rationalize AMQP sample

pull/3435/head
Dave Syer 10 years ago
parent 406d4ea771
commit 4581c5a273

@ -0,0 +1,5 @@
rabbitmq:
image: rabbitmq
ports:
- "5672:5672"
- "15672:15672"

@ -16,49 +16,35 @@
package sample.amqp; package sample.amqp;
import org.springframework.amqp.core.AmqpTemplate; import java.util.Date;
import org.springframework.amqp.rabbit.connection.ConnectionFactory;
import org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer; import org.springframework.amqp.core.Queue;
import org.springframework.amqp.rabbit.listener.adapter.MessageListenerAdapter; import org.springframework.amqp.rabbit.annotation.RabbitHandler;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean; 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 @SpringBootApplication
@RabbitListener(queues = "foo")
@EnableScheduling
public class SampleAmqpSimpleApplication { public class SampleAmqpSimpleApplication {
@Autowired
private AmqpTemplate amqpTemplate;
@Autowired
private ConnectionFactory connectionFactory;
@Bean
public ScheduledAnnotationBeanPostProcessor scheduledAnnotationBeanPostProcessor() {
return new ScheduledAnnotationBeanPostProcessor();
}
@Bean @Bean
public Sender mySender() { public Sender mySender() {
return new Sender(); return new Sender();
} }
@Bean @Bean
public SimpleMessageListenerContainer container() { public Queue fooQueue() {
SimpleMessageListenerContainer container = new SimpleMessageListenerContainer( return new Queue("foo");
this.connectionFactory); }
Object listener = new Object() {
@SuppressWarnings("unused") @RabbitHandler
public void handleMessage(String foo) { public void process(@Payload String foo) {
System.out.println(foo); System.out.println(new Date() + ": " + foo);
}
};
MessageListenerAdapter adapter = new MessageListenerAdapter(listener);
container.setMessageListener(adapter);
container.setQueueNames("foo");
return container;
} }
public static void main(String[] args) throws Exception { public static void main(String[] args) throws Exception {

@ -16,10 +16,6 @@
package sample.amqp; 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.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled; import org.springframework.scheduling.annotation.Scheduled;
@ -29,14 +25,6 @@ public class Sender {
@Autowired @Autowired
private RabbitTemplate rabbitTemplate; private RabbitTemplate rabbitTemplate;
@Autowired
private AmqpAdmin amqpAdmin;
@PostConstruct
public void setUpQueue() {
this.amqpAdmin.declareQueue(new Queue("foo"));
}
@Scheduled(fixedDelay = 1000L) @Scheduled(fixedDelay = 1000L)
public void send() { public void send() {
this.rabbitTemplate.convertAndSend("foo", "hello"); this.rabbitTemplate.convertAndSend("foo", "hello");

Loading…
Cancel
Save