package com.tszr.service; import com.fasterxml.jackson.databind.ObjectMapper; import com.tszr.entity.Weather; import org.springframework.amqp.rabbit.annotation.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.messaging.handler.annotation.Payload; import org.springframework.stereotype.Component; @Component public class Receiver1 { @Autowired private ObjectMapper objectMapper; @RabbitListener( bindings = @QueueBinding( //队列名weather-queue1保证和别的订阅者不一样 value = @Queue(value = "weather-queue1",durable = "true"), //weather-exchange与发布者的交换机名相同 exchange = @Exchange(value = "weather-exchange",durable = "true",type = "topic"), //weather.message与发布者的消息的路由Key相同 key = "weather.message" ) ) @RabbitHandler public void receiveWeather(@Payload byte[] weatherMessage)throws Exception{ System.out.println("-----------订阅者Receiver1接收到消息--------"); //将JSON字节数组转换为Weather对象 Weather w=objectMapper.readValue(weatherMessage, Weather.class); System.out.println("Receiver1收到的消息内容:"+w); } }