zoukankan      html  css  js  c++  java
  • SpringBoot Rabbitmq接收消息

    官网地址:https://docs.spring.io/spring-boot/docs/2.1.3.RELEASE/reference/htmlsingle/#boot-features-amqp

    引入依赖:

      <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-amqp</artifactId>
      </dependency>

    接收消息:

    @Component
    public class RabbitmqListener {
        @RabbitListener(queues = "queue-1",containerFactory="myFactory")
        public void consumerMsgListenerqueue1(Message content) {
            System.out.println(messageToJson(content));
        }
        @RabbitListener(queues = "queue-2")
        public void consumerMsgListenerqueue2(byte[] content) {
           // System.out.println(messageToJson(content));
        }
    
        public Object messageToJson(Message message){
            Jackson2JsonMessageConverter jackson2JsonMessageConverter = new Jackson2JsonMessageConverter();
            return  jackson2JsonMessageConverter.fromMessage(message);
        }
    }

    容器类:

    @Configuration
    public class RabbitmqConfig {
    
            @Bean
            public SimpleRabbitListenerContainerFactory myFactory(SimpleRabbitListenerContainerFactoryConfigurer configurer) {
                SimpleRabbitListenerContainerFactory factory =
                        new SimpleRabbitListenerContainerFactory();
                configurer.configure(factory, connectionFactory());
                factory.setMessageConverter(new MyMessageConverter());
                return factory;
            }
    
            @Bean
            public ConnectionFactory connectionFactory() {
                ConnectionFactory connectionFactory = new CachingConnectionFactory();
                ((CachingConnectionFactory) connectionFactory).setHost("47.75.152.XX0");
                ((CachingConnectionFactory) connectionFactory).setPort(5672);
                ((CachingConnectionFactory) connectionFactory).setUsername("qijie");
                ((CachingConnectionFactory) connectionFactory).setPassword("qijie.+");
    //        ExecutorService service= Executors.newFixedThreadPool(20);//线程池
    //        ((CachingConnectionFactory) connectionFactory).setExecutor();
                return connectionFactory;
            }
    }
    MyMessageConverter: 消息转换回json格式
    public class MyMessageConverter implements MessageConverter {
    
        @Override
        public org.springframework.amqp.core.Message toMessage(Object object, MessageProperties messageProperties) throws MessageConversionException {
    
            return null;
        }
    
        @Override
        public org.springframework.amqp.core.Message toMessage(Object object, MessageProperties messageProperties, Type genericType) throws MessageConversionException {
    
            return null;
        }
    
        @Override
        public Object fromMessage(Message message) throws MessageConversionException {
            message.getMessageProperties().setContentType(MessageProperties.CONTENT_TYPE_JSON);
            return message;
        }
    }
     
  • 相关阅读:
    springboot 无法访问静态资源
    webrtc源码阅读理解一
    c++ include的顺序重要吗?
    简说yuv
    i420 转 nv21
    ffmpeg mp4 转 yuv、 y4m转yuv、mp4转y4m && ffplay 播放y4m、yuv
    mysql 查询json字符串条件
    Webpack4.X中sourcemap的配置 详解
    webpack如何打包生成的map文件不生效?
    vue中使用setInterval,移入暂停,移出继续
  • 原文地址:https://www.cnblogs.com/shiguotao-com/p/10445248.html
Copyright © 2011-2022 走看看