之前我们已经对直连模式进行了讲解,并且用代码实现了发送端和接收端,但是发送端和接收端的代码有很多的重复的,我们就需要优化代码,提取冗余的代码为工具类。

package utils;


import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;

import java.io.IOException;
import java.util.concurrent.TimeoutException;

/** * @author * @date 2020/10/20--13:55 */
public class RabbitMqUtils {
   
    private static ConnectionFactory connectionFactory;
    static {
   
        connectionFactory = new ConnectionFactory();
        // 创建连接mq的连接工厂对象,这个是依赖里面的类,我们只需要拿过来创建对象就可以了

// 设置连接rabbitmq的ip
        connectionFactory.setHost("192.168.40.145");
// 设置端口号
        connectionFactory.setPort(5672);
// 设置连接的虚拟的主机
        connectionFactory.setVirtualHost("/ems");
// 设置访问虚拟主机的用户名和密码
        connectionFactory.setUsername("ems");
        connectionFactory.setPassword("123");
    }
// 定义提供连接对象的方法
    public static Connection  getConnection()  {
   
        try {
   
            return  connectionFactory.newConnection();
        } catch (Exception e) {
   
            e.printStackTrace();
        }
        return  null;
    }
    
//关闭通道和关闭连接的方法
    public  static void closeConnectionAndChannel(Channel channel,Connection coon) {
   
        try {
   

            if (channel!=null) channel.close();
            if ( coon!=null)coon.close();
        } catch (Exception e) {
   
            e.printStackTrace();
        }

    }

}