之前我们已经对直连模式进行了讲解,并且用代码实现了发送端和接收端,但是发送端和接收端的代码有很多的重复的,我们就需要优化代码,提取冗余的代码为工具类。
代码语言:javascript复制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();
}
}
}