• rabbitMQ发送消息端关键代码


    package com.tszr;
    
    import com.fasterxml.jackson.databind.ObjectMapper;
    import com.tszr.entity.Weather;
    import org.springframework.amqp.core.Message;
    import org.springframework.amqp.core.MessageBuilder;
    import org.springframework.amqp.core.MessageDeliveryMode;
    import org.springframework.amqp.rabbit.connection.CorrelationData;
    import org.springframework.amqp.rabbit.core.RabbitTemplate;
    import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.CommandLineRunner;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    @SpringBootApplication
    public class Application implements CommandLineRunner {
        @Autowired
        private ObjectMapper objectMapper;
    
        @Autowired
        RabbitTemplate rabbitTemplate;
    
        public static void main(String[] args){
            SpringApplication.run(Application.class,args);
        }
    
        /**
         * 定义发布者
         */
        @Override
        public void run(String... args) throws Exception {
            //定义消息对象
            Weather weather = new Weather();
            weather.setId("010");
            weather.setCity("北京");
            weather.setWeatherDetail("今天晴到多云,南风5-6级,温度19-26°C");
    
            //指定Json转换器,Jackson2JsonMessageConverter默认将消息转换成byte[]类型的消息
            rabbitTemplate.setMessageConverter(new Jackson2JsonMessageConverter());
            //objectMapper将weather对象转换为JSON字节数组
            Message msg= MessageBuilder.withBody(objectMapper.writeValueAsBytes(weather))
                    .setDeliveryMode(MessageDeliveryMode.NON_PERSISTENT)
                    .build();
            // 消息唯一ID
            CorrelationData correlationData = new CorrelationData(weather.getId());
            //使用已封装好的convertAndSend(String exchange , String routingKey , Object message, CorrelationData correlationData)
            //将特定的路由key发送消息到指定的交换机
            rabbitTemplate.convertAndSend(
                    "weather-exchange", //分发消息的交换机名称
                    "weather.message", //用来匹配消息的路由Key
                    msg, //消息体
                    correlationData);
        }
    }
  • 相关阅读:
    leetcode-000-序
    统计学习方法:支撑向量机(SVM)
    统计学习方法:CART算法
    统计学习方法:最大熵模型
    〖Linux〗关于Linux软件包安装位置、版本查询
    〖Linux〗ltib的使用帮助
    〖Linux〗Debian 7.1.0 Wheezy使用ltib报错的解决办法
    〖Android〗把CM(Android)源代码导入eclipse的正确方法(2013-7-3)
    【Linux】eclipse juno 边框过大的调整方法
    【Android】在build/envsetup.sh中添加自己的命令(函数)
  • 原文地址:https://www.cnblogs.com/tszr/p/15990679.html
Copyright © 2020-2023  润新知