wzy
2020-12-26 2cf928a22b6cf8ea7a29f29127ffc333c73b0bca
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
package com.matrix.component.rabbitmq;
 
import com.matrix.core.tools.LogUtil;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
 
import java.io.IOException;
import java.util.concurrent.TimeoutException;
 
/**
 * mq消息模板工程
 *
 * @Author jyy
 */
public class RabiitMqTemplateFactory {
 
    private static RabiitMqTemplate rabiitMqTemplate = null;
 
    /**
     * 构建mq消息模板,mq模板是单例的
     *
     * @param host
     * @param port
     * @param username
     * @param password
     * @return
     */
    public static RabiitMqTemplate buildTemplate(String host, int port, String username, String password) {
 
        if (rabiitMqTemplate == null) {
            ConnectionFactory factory = new ConnectionFactory();
            factory.setHost(host);
            factory.setPort(port);
            factory.setUsername(username);
            factory.setPassword(password);
            /**
             * 网络故障自动连接恢复
             */
            factory.setAutomaticRecoveryEnabled(true);
            Connection connection = null;
            try {
                connection = factory.newConnection();
            } catch (IOException | TimeoutException e) {
                LogUtil.error("RabiitMqTemplate初始化失败" + e.getMessage(), e);
            }
            rabiitMqTemplate = new RabiitMqTemplate(connection);
        }
        return rabiitMqTemplate;
    }
}