登陆中国建设银行网站我的账户密码怎么就有了?怎么清除,网站模板下载后怎么使用,wordpress转typecho插件,网站源码平台背景
小项目#xff0c;使用RabbitMQ作为消息队列#xff0c;发布到不同的新环境时#xff0c;由于新搭建的MQ中不存在Exchange和Queue#xff0c;就会出错#xff0c;还得手动去创建#xff0c;比较麻烦#xff0c;于是想在代码中将这些定义好后#xff0c;自动控制M…背景
小项目使用RabbitMQ作为消息队列发布到不同的新环境时由于新搭建的MQ中不存在Exchange和Queue就会出错还得手动去创建比较麻烦于是想在代码中将这些定义好后自动控制MQ去创建。
原理与步骤
第一步定义RabbitAdmin Bean第二步定义交换机 Bean第三步定义Queue Bean第四步定义Binding Bean 这一步最关键即将Queue与交换机
完整代码如下定义如下代码后即便使用新的MQ启动项目也会自动创建但是请注意 virtual-host 是无法被自动创建的(我目前的研究是这样有自动创建的办法请留言告诉我谢谢)因此如果不使用默认的virtual-host请在MQ控制台中去创建。
package com.app.config;import org.springframework.amqp.core.*;
import org.springframework.amqp.rabbit.connection.ConnectionFactory;
import org.springframework.amqp.rabbit.core.RabbitAdmin;
import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter;
import org.springframework.amqp.support.converter.MessageConverter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;/*** author Administrator* date 2023/8/4 16:25* description*/
Configuration
public class RabbitConfig {Autowiredprivate ConnectionFactory connectionFactory;Beanpublic RabbitAdmin rabbitAdmin() {RabbitAdmin rabbitAdmin new RabbitAdmin(connectionFactory);rabbitAdmin.setAutoStartup(true);return rabbitAdmin;}Bean(addOrderExchange)public DirectExchange addOrderExchange() {return ExchangeBuilder.directExchange(addOrderExchange).durable(true).build();}Bean(defaultExchange)public DirectExchange defaultExchange() {return ExchangeBuilder.directExchange().durable(true).build();}Bean(addEvtDayInvest)public Queue addEvtDayInvest() {Queue queue QueueBuilder.durable(addEvtDayInvest).build();rabbitAdmin().declareQueue(queue);return queue;}Bean(addEvtDayInvestBind)public Binding addEvtDayInvestBind() {return BindingBuilder.bind(addEvtDayInvest()).to(addOrderExchange()).with();}Bean(addMemberData)public Queue addMemberData() {Queue queue QueueBuilder.durable(addMemberData).build();rabbitAdmin().declareQueue(queue);return queue;}Bean(addMemberDataBind)public Binding addMemberDataBind() {return BindingBuilder.bind(addMemberData()).to(addOrderExchange()).with();}Bean(addRepaymentPlant)public Queue addRepaymentPlant() {Queue queue QueueBuilder.durable(addRepaymentPlant).build();rabbitAdmin().declareQueue(queue);return queue;}Bean(addRepaymentPlantBind)public Binding addRepaymentPlantBind() {return BindingBuilder.bind(addRepaymentPlant()).to(addOrderExchange()).with();}Bean(imQueue)public Queue imQueue() {Queue queue QueueBuilder.durable(imQueue).build();rabbitAdmin().declareQueue(queue);return queue;}Bean(imQueueBind)public Binding imQueueBind() {return BindingBuilder.bind(imQueue()).to(defaultExchange()).withQueueName();}Bean(settleInterestQueue)public Queue settleInterestQueue() {Queue queue QueueBuilder.durable(settleInterestQueue).build();rabbitAdmin().declareQueue(queue);return queue;}Bean(settleInterestQueueBind)public Binding settleInterestQueueBind() {return BindingBuilder.bind(settleInterestQueue()).to(defaultExchange()).withQueueName();}Bean(registerQueue)public Queue registerQueue() {Queue queue QueueBuilder.durable(registerQueue).build();rabbitAdmin().declareQueue(queue);return queue;}Bean(registerQueueBind)public Binding registerQueueBind() {return BindingBuilder.bind(registerQueue()).to(defaultExchange()).withQueueName();}Bean(memberLoginLogQueue)public Queue memberLoginLogQueue() {Queue queue QueueBuilder.durable(memberLoginLogQueue).build();rabbitAdmin().declareQueue(queue);return queue;}Bean(memberLoginLogQueueBind)public Binding memberLoginLogQueueBind() {return BindingBuilder.bind(memberLoginLogQueue()).to(defaultExchange()).withQueueName();}Bean(addParentDataQueue)public Queue addParentDataQueue() {Queue queue QueueBuilder.durable(addParentDataQueue).build();rabbitAdmin().declareQueue(queue);return queue;}Bean(addParentDataQueueBind)public Binding addParentDataQueueBind() {return BindingBuilder.bind(addParentDataQueue()).to(defaultExchange()).withQueueName();}Bean(addOrderQueue)public Queue addOrderQueue() {Queue queue QueueBuilder.durable(addOrderQueue).build();rabbitAdmin().declareQueue(queue);return queue;}Bean(addOrderQueueBind)public Binding addOrderQueueBind() {return BindingBuilder.bind(addOrderQueue()).to(defaultExchange()).withQueueName();}Bean(memberPerformanceQueue)public Queue memberPerformanceQueue() {Queue queue QueueBuilder.durable(memberPerformanceQueue).build();rabbitAdmin().declareQueue(queue);return queue;}Bean(memberPerformanceQueueBind)public Binding memberPerformanceQueueBind() {return BindingBuilder.bind(memberPerformanceQueue()).to(defaultExchange()).withQueueName();}Bean(computeExpectedIncomeQueue)public Queue computeExpectedIncomeQueue() {Queue queue QueueBuilder.durable(computeExpectedIncomeQueue).build();rabbitAdmin().declareQueue(queue);return queue;}Bean(computeExpectedIncomeQueueBind)public Binding computeExpectedIncomeQueueBind() {return BindingBuilder.bind(computeExpectedIncomeQueue()).to(defaultExchange()).withQueueName();}/*** 自定义 json 格式发送消息** return*/Beanpublic MessageConverter messageConverter() {return new Jackson2JsonMessageConverter();}}