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; } }