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<MqTask> taskList = new ArrayList<>();
|
|
//注册RabbitMq任务
|
|
|
|
rabiitMqTemplate.binding(taskList);
|
|
return rabiitMqTemplate;
|
}
|
|
|
|
}
|