package com.matrix.config; import com.matrix.component.rabbitmq.MqTask; import com.matrix.component.rabbitmq.RabiitMqTemplate; import com.matrix.component.rabbitmq.RabiitMqTemplateFactory; import com.matrix.core.tools.LogUtil; import com.matrix.system.shopXcx.mqTask.OrderOutSotoreTask; import com.matrix.system.shopXcx.mqTask.SalesOrderRefundTask; import com.matrix.system.shopXcx.mqTask.SalesOrderTask; import com.matrix.system.shopXcx.mqTask.TemplateMsgTask; import com.matrix.system.wechart.templateMsg.Task.UniformMsgSentTask; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import java.io.IOException; import java.util.ArrayList; import java.util.List; /** * 小型应用弃用rabbitmq,直接通过观察者模式对消息进行同步消费 参考 AsyncMessageManager */ //@Configuration public class RabbitMqConfig { @Value("${rabbitmq.host}") private String host; @Value("${rabbitmq.port}") private int port; @Value("${rabbitmq.username}") private String username; @Value("${rabbitmq.password}") private String password; @Value("${evn}") private String evn; public static final String MQ_EXCHANGE_A = "hive_exchange_A"; //订阅模式 public static final String MQ_EXCHANGE_TOPIC = "hive_exchange_fanout"; @Bean SalesOrderTask SalesOrderTask() { return new SalesOrderTask(); } @Bean SalesOrderRefundTask SalesOrderRefundTask() { return new SalesOrderRefundTask(); } @Bean TemplateMsgTask TemplateMsgTask(){ return new TemplateMsgTask(); } @Bean UniformMsgSentTask UniformMsgSentTask(){ return new UniformMsgSentTask(); } @Bean OrderOutSotoreTask OrderOutSotoreTask(){ return new OrderOutSotoreTask(); } @Bean public RabiitMqTemplate rabiitMqTemplate() throws IOException { LogUtil.info("rabbitmq: {}, {}, {}, {}", host, port, username, password); RabiitMqTemplate rabiitMqTemplate = RabiitMqTemplateFactory.buildTemplate(host, port, username, password); //声明一个交换机 rabiitMqTemplate.exchangeDeclare(MQ_EXCHANGE_A+evn, "direct"); rabiitMqTemplate.exchangeDeclare(MQ_EXCHANGE_TOPIC +evn, "topic"); List taskList = new ArrayList<>(); //注册RabbitMq任务 rabiitMqTemplate.binding(taskList); return rabiitMqTemplate; } }