首先先介绍下非spring整合下的RabbitMQ:
引入jar
<dependency>
<groupId>com.rabbitmq</groupId>
<artifactId>amqp-client</artifactId>
<version>3.6.5</version>
</dependency>
编写实现代码
import org.apache.log4j.Logger;
import com.deshangshidai.utils.DateTimeUtils;
import com.deshangshidai.utils.PropertitesReader;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
import com.rabbitmq.client.QueueingConsumer;
/**
*
* @author Administrator
* 服务器端
*/
//@Deprecated
public class RabbitMQ {
private static final Logger log = Logger.getLogger(RabbitMQ.class);
//消费者 *** 入参为队列名称
public static void Server(String queueName) {
try{
/* 建立连接 */
ConnectionFactory factory = new ConnectionFactory();
factory.setHost(PropertitesReader.ReadersContext("rabbitmq-slave.properties", "rabbitmq.queue.host"));// MQ的IP
factory.setPort(Integer.parseInt(PropertitesReader.ReadersContext("rabbitmq-slave.properties", "rabbitmq.queue.port")));// MQ端口
factory.setUsername(PropertitesReader.ReadersContext("rabbitmq-slave.properties", "rabbitmq.username"));// MQ用户名
factory.setPassword(PropertitesReader.ReadersContext("rabbitmq-slave.properties", "rabbitmq.password"));// MQ密码
Connection connection = factory.newConnection();
Channel channel = connection.createChannel();
if(queueName==null||queueName.equals("")){
queueName=RabbitMQmenu.TEST.toString();
}
/* 声明要连接的队列 */
channel.queueDeclare(queueName, false, false, false, null);
log.info(DateTimeUtils.getDateTimeQM()+"------>系统消息队列创建成功!");
/* 创建消费者对象,用于读取消息 */
QueueingConsumer consumer = new QueueingConsumer(channel);
channel.basicConsume(queueName, true, consumer);
/* 读取队列,并且阻塞,即在读到消息之前在这里阻塞,直到等到消息,完成消息的阅读后,继续阻塞循环 */
while (true) {
QueueingConsumer.Delivery delivery = consumer.nextDelivery();
String message = new String(delivery.getBody());
log.info("【收到消息】---"+DateTimeUtils.getDateTimeQM()+"------>"+message);
}
}catch(Exception e){
log.info(DateTimeUtils.getDateTimeQM()+"------>系统消息队列创建失败!\n"+e.getMessage());
}
}
//生产者 *** 入参为队列名称
public static void client(String queueName){
try{
/* 建立连接 */
ConnectionFactory factory = new ConnectionFactory();
factory.setHost(PropertitesReader.ReadersContext("rabbitmq-slave.properties", "rabbitmq.queue.host"));// MQ的IP
factory.setPort(Integer.parseInt(PropertitesReader.ReadersContext(&#