• springboot中集成多个rabbitmq


    package com.demo.config;
    
    import com.fasterxml.jackson.databind.ObjectMapper;
    import org.springframework.amqp.core.*;
    import org.springframework.amqp.rabbit.config.SimpleRabbitListenerContainerFactory;
    import org.springframework.amqp.rabbit.connection.CachingConnectionFactory;
    import org.springframework.amqp.rabbit.connection.ConnectionFactory;
    import org.springframework.amqp.rabbit.core.RabbitTemplate;
    import org.springframework.amqp.rabbit.listener.RabbitListenerContainerFactory;
    import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter;
    import org.springframework.amqp.support.converter.MessageConverter;
    import org.springframework.beans.factory.annotation.Qualifier;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.context.annotation.Primary;
    
    import javax.annotation.Resource;
    
    
    
    @Configuration
    public class TestMQConfig {
    
        @Resource
        private ObjectMapper objectMapper;
       @Value("${spring.rabbitmq.host:10.1.1.1}")
        private  String host;
        @Value("${spring.rabbitmq.port:5672}")
        private  int port;
        @Value("${spring.rabbitmq.username:test}")
        private  String username;
        @Value("${spring.rabbitmq.virtual-host:test}")
        private  String virtualHost;
        @Value("${spring.rabbitmq.password:test}")
        private  String password;
    
        @Bean(name = "decorationConnectionFactory")
        @Primary
        public ConnectionFactory pmsConnectionFactory()  {
            return connectionFactory(host, port, username, password, virtualHost);
        }
    
        public CachingConnectionFactory connectionFactory(String host, int port, String username, String password, String virtual_host) {
            CachingConnectionFactory connectionFactory = new CachingConnectionFactory();
            connectionFactory.setHost(host);
            connectionFactory.setPort(port);
            connectionFactory.setUsername(username);
            connectionFactory.setPassword(password);
            connectionFactory.setVirtualHost(virtual_host);
            return connectionFactory;
        }
    
        @Bean(name = "decorationRabbitListenerContainerFactory")
        @Primary
        public RabbitListenerContainerFactory pmsRabbitListenerContainerFactory(@Qualifier("decorationConnectionFactory") ConnectionFactory connectionFactory) {
            SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory();
            factory.setConnectionFactory(connectionFactory);
            factory.setMessageConverter(messageConverter());
            return factory;
        }
    
    
        @Bean
        public MessageConverter messageConverter() {
            return new Jackson2JsonMessageConverter(objectMapper);
        }
    
        @Bean(name = "BPMRabbitMQTemplate")
        @Primary
        public RabbitTemplate rabbitTemplate(
                @Qualifier("decorationConnectionFactory") ConnectionFactory connectionFactory
        ) {
            RabbitTemplate rabbitTemplate = new RabbitTemplate(connectionFactory);
            rabbitTemplate.setMessageConverter(messageConverter());
            return rabbitTemplate;
        }
    
    
        /**
         * 定义队列
         *
         * @return
         */
        @Bean
        public Queue BPMQueue() {
            return new Queue("bpmstart.entry.group.0");
        }
    
        /**
         * 定义交换机
         *
         * @return
         */
        @Bean
        TopicExchange BPMExchange() {
            return new TopicExchange("bpmstart.entry");
        }
    
    
        /**
         * 交换机绑定队列
         *
         * @return
         */
        @Bean
        Binding bindingExchangeHandleEnergyMeter() {
            return BindingBuilder.bind(BPMQueue()).to(BPMExchange()).with("BPM");
        }
    
    }
  • 相关阅读:
    2017年下半年软考合格标准出炉啦
    练网软考知识点整理-项目配置管理流程
    简练网软考知识点整理-项目招标投标中的法律责任
    简练网软考知识点整理-软件维护类型
    简练网软考知识点整理-软件质量保证及质量评价
    简练网软考知识点整理-项目配置管理配置审计
    简练网软考知识点整理-项目问题日志(Issue Log)
    简练网软考知识点整理-风险应对措施(应急计划、弹回计划和权变措施)
    简练网软考知识点整理-项目组织分解结构OBS
    简练网软考知识点整理-项目配置管理计划
  • 原文地址:https://www.cnblogs.com/tiancai/p/14875554.html
Copyright © 2020-2023  润新知