package com.medrd.hpay.config;
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.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.amqp.SimpleRabbitListenerContainerFactoryConfigurer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
@Configuration
public class RabbitMqConfiguration{
@Bean(name="hospSyncConnectionFactory")
@Primary
public ConnectionFactory hospSyncConnectionFactory(
@Value("${spring.rabbitmq.hospSync.host}") String host,
@Value("${spring.rabbitmq.hospSync.port}") int port,
@Value("${spring.rabbitmq.hospSync.username}") String username,
@Value("${spring.rabbitmq.hospSync.password}") String password,
@Value("${spring.rabbitmq.hospSync.virtual-host}") String virtualHost){
CachingConnectionFactory connectionFactory = new CachingConnectionFactory();
connectionFactory.setHost(host);
connectionFactory.setPort(port);
connectionFactory.setUsername(username);
connectionFactory.setPassword(password);
connectionFactory.setVirtualHost(virtualHost);
return connectionFactory;
@Bean(name="hPayConnectionFactory")
public ConnectionFactory hPayConnectionFactory(
@Value("${spring.rabbitmq.pay.host}") String host,
@Value("${spring.rabbitmq.pay.port}") int port,
@Value("${spring.rabbitmq.pay.username}") String username,
@Value("${spring.rabbitmq.pay.password}") String password,
@Value("${spring.rabbitmq.pay.virtual-host}") String virtualHost){
CachingConnectionFactory connectionFactory = new CachingConnectionFactory();
connectionFactory.setHost(host);
connectionFactory.setPort(port);
connectionFactory.setUsername(username);
connectionFactory.setPassword(password);
connectionFactory.setVirtualHost(virtualHost);
return connectionFactory;
@Bean(name="hospSyncRabbitTemplate")
// @Primary
public RabbitTemplate firstRabbitTemplate(
@Qualifier("hospSyncConnectionFactory") ConnectionFactory connectionFactory
RabbitTemplate hospSyncRabbitTemplate = new RabbitTemplate(connectionFactory);
//使用外部事物
//ydtRabbitTemplate.setChannelTransacted(true);
return hospSyncRabbitTemplate;
@Bean(name="hPayRabbitTemplate")
@Primary
public RabbitTemplate secondRabbitTemplate(
@Qualifier("hPayConnectionFactory") ConnectionFactory connectionFactory
RabbitTemplate hPayRabbitTemplate = new RabbitTemplate(connectionFactory);
//使用外部事物
//lpzRabbitTemplate.setChannelTransacted(true);
return hPayRabbitTemplate;
@Bean(name="hospSyncContainerFactory")
public SimpleRabbitListenerContainerFactory hospSyncFactory(
SimpleRabbitListenerContainerFactoryConfigurer configurer,
@Qualifier("hospSyncConnectionFactory") ConnectionFactory connectionFactory
SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory();
configurer.configure(factory, connectionFactory);
return factory;
@Bean(name="hPayContainerFactory")
public SimpleRabbitListenerContainerFactory hPayFactory(
SimpleRabbitListenerContainerFactoryConfigurer configurer,
@Qualifier("hPayConnectionFactory") ConnectionFactory connectionFactory
SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory();
configurer.configure(factory, connectionFactory);
return factory;
1.application.ymlspring: rabbitmq: hospSync: host: localhost port: 5672 username: test password: test virtual-host: test pay: host: ...
package com.medrd.hpay.config;
import org.springframework.amqp.rabbit.config.SimpleRabbitListenerContainerFactory;
import org.springframework.amqp.rabbit.connection.CachingConnectionFactory;
import org.springframework.amqp.rabbit.connection.ConnectionFact
1.springboot整合spring cloud stream实现多mq对接
2.pom引入如下关键依赖,注意springcloud版本和springboot的版本关系,要版本相对应,一下已引入springcloud版本管理,复制使用即可
<properties>
<java.version>1.8</java.version>
<spring-cloud.version>Greenwich.SR3</spring-cloud.versio
一个spring boot项目配置一个rabbit mq很常见,如何配置两个以及两个以上的mq?本篇文章将结合代码说明如何配置两个rabbit mq(talk is cheap, show me the code)。
2.项目结构
<groupId>cn.honorzhang</groupId>
<artifactId>my-springboot-rabbitmq</artifactId>
<version>1.0.0</.
# 第一个mq
spring.rabbitmq.first.host=${mq.host}
spring.rabbitmq.first.port=${mq.port}
spring.rabbitmq.first.username=${mq.username}
spring.rabbitmq.first.password=${mq.password}
spring.rabbitmq.first.virtualHost=${mq.vhost}
SpringBoot 集成多个rabbitmq
在项目中经常遇到一个springboot工程要连接多个rabbitmq。如果只连接一个,springboot可以零配置连接rabbitmq,这样不需要做额外的工作。但如果连接多个rabbitmq,就得做一些配置了。
1 配置多个rabbitmq的连接地址:
spring.rabbitmq.first.host=192.168.10.223
spring.rabbitmq.first.port=5672
spring.rabbitmq.first.usernam
1. 在 pom.xml 中添加 RabbitMQ 的依赖.
2. 在 application.properties 或 application.yml 中配置 RabbitMQ 的连接信息, 如 host, port, username, password 等.
3. 创建一个配置类来配置 RabbitTemplate, Queue, TopicExchange 等 Bean.
4. 在需要发送消息的类中注入 RabbitTemplate 并使用其 convertAndSend 方法发送消息.
5. 在需要接收消息的类中使用 @RabbitListener 注解标记方法, 并在方法参数中使用 @Payload 注解绑定消息内容.
Dreaming_of_you:
String literals in formulas can’t be bigger than 255 characters ASCII
weixin_51347244: