详解弹簧引导配置多个RabbitMQ

  

<强>闲话

  

好久没有写博客了,6月份毕业,因为工作原因,公司上网受限,一直没能把学到的知识点写下来,工作了半年,其实学到的东西也不少,但是现在回忆起来的东西少之又少,有时甚至能在同个问题中踩了几次,越来越觉得及时记录一下学到的东西很重要。

  

好了,闲话少说,写下这段时间学习的东西,先记录一下用弹簧引导配置多个RabbitMQ的情况…
  

  

最近公司新启动一个新平台的项目,需要用微服务这个这几年很火的概念来做,所以就学习了弹簧引导方面的知识,给同事展示弹簧引导的一些小事例的时候,同事提出了可不可以配置多个RabbitMQ ?下面就是在春天引导配置多个RabbitMQ的例子。是自己摸索搭建的,也不知道对不对,有其他好的实现方法的网友可以互相交流一下。

  

<强>项目代码构造

  

详解弹簧引导配置多个RabbitMQ

  

关注点在红框的代码…

  

<强>代码

  

下面就把项目的代码展示下来

  

application.properties   

配置文件

        spring.application.name=rabbitmq-hello      # RabbitMQ   spring.rabbitmq.first.host=node9   spring.rabbitmq.first.port=5670   spring.rabbitmq.first.username=客人   spring.rabbitmq.first.password=客人      spring.rabbitmq.second.host=localhost   spring.rabbitmq.second.port=5672   spring.rabbitmq.second.username=客人   spring.rabbitmq.second.password=客人         # MySQL   spring.datasource。url=jdbc: mysql://localhost: 3306/cloudtest   spring.datasource。用户名=根   spring.datasource。密码=根   spring.datasource。driverClassName=com.mysql.jdbc.Driver      之前      

HelloApplication.java   

程序入口

        包com.paas.springboot.demo01;      进口org.springframework.boot.SpringApplication;   进口org.springframework.boot.autoconfigure.SpringBootApplication;      @SpringBootApplication   公开课HelloApplication {      公共静态void main (String [] args) {   SpringApplication.run (HelloApplication.class, args);   }      }      之前      

RabbitConfig.java   

RabbitMQ配置类

        包com.paas.springboot.demo01;      进口org.springframework.amqp.core.Queue;   进口org.springframework.amqp.rabbit.config.SimpleRabbitListenerContainerFactory;   进口org.springframework.amqp.rabbit.connection.CachingConnectionFactory;   进口org.springframework.amqp.rabbit.connection.ConnectionFactory;   进口org.springframework.amqp.rabbit.core.RabbitTemplate;   进口org.springframework.beans.factory.annotation.Qualifier;   进口org.springframework.beans.factory.annotation.Value;   进口org.springframework.boot.autoconfigure.amqp.SimpleRabbitListenerContainerFactoryConfigurer;   进口org.springframework.context.annotation.Bean;   进口org.springframework.context.annotation.Configuration;   进口org.springframework.context.annotation.Primary;      @ configuration   公开课RabbitConfig {      @ bean (name=" firstConnectionFactory ")   @Primary   公共ConnectionFactory firstConnectionFactory (   @ value (" $ {spring.rabbitmq.first.host} ")字符串主机,   @ value (" $ {spring.rabbitmq.first.port} ") int港口,   @ value (" $ {spring.rabbitmq.first.username} ")字符串的用户名,   @ value (" $ {spring.rabbitmq.first.password} ")字符串密码   ){   CachingConnectionFactory connectionFactory=new CachingConnectionFactory ();   connectionFactory.setHost(主机);   connectionFactory.setPort(港口);   connectionFactory.setUsername(用户名);   connectionFactory.setPassword(密码);   返回connectionFactory;   }      @ bean (name=" secondConnectionFactory ")   公共ConnectionFactory secondConnectionFactory (   @ value (" $ {spring.rabbitmq.second.host} ")字符串主机,   @ value (" $ {spring.rabbitmq.second.port} ") int港口,   @ value (" $ {spring.rabbitmq.second.username} ")字符串的用户名,   @ value (" $ {spring.rabbitmq.second.password} ")字符串密码   ){   CachingConnectionFactory connectionFactory=new CachingConnectionFactory ();   connectionFactory.setHost(主机);   connectionFactory.setPort(港口);   connectionFactory.setUsername(用户名);   connectionFactory.setPassword(密码);   返回connectionFactory;   }      @ bean (name=" firstRabbitTemplate ")   @Primary   公共RabbitTemplate firstRabbitTemplate (   @ qualifier ConnectionFactory ConnectionFactory (“firstConnectionFactory”)   ){   RabbitTemplate firstRabbitTemplate=new RabbitTemplate (connectionFactory);   返回firstRabbitTemplate;   }      @ bean (name=" secondRabbitTemplate ")   公共RabbitTemplate secondRabbitTemplate (   @ qualifier ConnectionFactory ConnectionFactory (“secondConnectionFactory”)   ){   RabbitTemplate secondRabbitTemplate=new RabbitTemplate (connectionFactory);   返回secondRabbitTemplate;   }      @ bean (name=" firstFactory ")   公共SimpleRabbitListenerContainerFactory firstFactory (   SimpleRabbitListenerContainerFactoryConfigurer配置,   @ qualifier ConnectionFactory ConnectionFactory (“firstConnectionFactory”)   ) {   SimpleRabbitListenerContainerFactory工厂=new SimpleRabbitListenerContainerFactory ();   配置。配置(工厂,connectionFactory);   返回工厂;   }      @ bean (name=" secondFactory ")   公共SimpleRabbitListenerContainerFactory secondFactory (   SimpleRabbitListenerContainerFactoryConfigurer配置,   @ qualifier ConnectionFactory ConnectionFactory (“secondConnectionFactory”)   ) {   SimpleRabbitListenerContainerFactory工厂=new SimpleRabbitListenerContainerFactory ();   配置。配置(工厂,connectionFactory);   返回工厂;   }      @ bean   公共队列firstQueue () {   system . out。println(“配置firstQueue ........................”);   返回新队列(“hello1”);   }      @ bean   公共对象secondQueue () {   system . out。null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

详解弹簧引导配置多个RabbitMQ