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"); } }
标签:
rabbitmq
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
2020-06-11 java dbhelper
2020-06-11 DevOps到底是什么意思?
2017-06-11 java中的线程同步