1. 编写连接rabbitmq的配置文件application.properties :
spring.application.name=spring-boot-rabbitmq
spring.rabbitmq.host=10.0.3.137
spring.rabbitmq.port=5672
spring.rabbitmq.username=admin
spring.rabbitmq.password=123456
spring.rabbitmq.virtual-host=/
#spring.rabbitmq.publisher-confirms=true
#spring.rabbitmq.publisher-returns=true
spring.rabbitmq.listener.simple.concurrency=5
spring.rabbitmq.listener.simple.max-concurrency=10
spring.rabbitmq.listener.simple.acknowledge-mode=auto
server.port=8080
2. 生成者 :
@GetMapping(value = "/sendString")
public String sendString() {
// CorrelationData correlationData = new CorrelationData();
// correlationData.setId("Saber");
// correlationData.setReturnedMessage();
rabbitTemplate.convertAndSend("demo", "demo.archer", "hello, world");
return "消息已发送";
}
@GetMapping(value = "/sendObject")
public String sendObject() {
UserEntity userEntity = new UserEntity();
userEntity.setName("allen");
userEntity.setAddress("山东济南");
rabbitTemplate.convertAndSend("demo", "demo.archer", userEntity);
return "消息已发送";
}
3. 消费者 :
@Component
@RabbitListener(queues = "archer")
public class HelloReceiver {
@RabbitHandler
public void process(String hello, @Headers Map<String, Object> headers, Channel channel) throws IOException {
System.out.println("消息接受为:{" + hello + "}");
// Long deliveryTag = (Long) headers.get(AmqpHeaders.DELIVERY_TAG);
// channel.basicAck(deliveryTag, false);
}
@RabbitHandler
public void process(UserEntity userEntity) {
System.out.println("消息接受为:" + userEntity);
}
}