1、在pom.xml文件中引入rabbitmq坐标
<!-- rabbitmq -->
<dependency>
<groupId>org.springframework.amqp</groupId>
<artifactId>spring-rabbit</artifactId>
<version>2.0.2.RELEASE</version>
</dependency>
2、spring配置文件编写 (笔者独立出一个配置文件 spring-rabbit.xml 装载RabbitMQ配置)
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:rabbit="http://www.springframework.org/schema/rabbit"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/rabbit
http://www.springframework.org/schema/rabbit/spring-rabbit.xsd">
<bean id="fooMessageListerer"
class="com.hao.web.listener.FooMessageListerer" />
<!-- 配置连接 -->
<rabbit:connection-factory
id="connectionFactory" host="127.0.0.1" port="5672" username="guest"
password="guest" virtual-host="/" requested-heartbeat="60" />
<!-- 配置RabbitTemplate -->
<rabbit:template id="amqpTemplate"
connection-factory="connectionFactory" exchange="myExchange"
routing-key="foo.bar" />
<!-- 配置 RabbitAdmin -->
<rabbit:admin connection-factory="connectionFactory" />
<!-- 配置队列名称 -->
<rabbit:queue name="myQueue" />
<!-- 配置 topic 类型交换器 -->
<rabbit:topic-exchange name="myExchange">
<rabbit:bindings>
<rabbit:binding queue="myQueue" pattern="foo.*"></rabbit:binding>
</rabbit:bindings>
</rabbit:topic-exchange>
<!-- 配置监听器 -->
<rabbit:listener-container connection-factory="connectionFactory">
<rabbit:listener ref="fooMessageListerer"
queue-names="myQueue" />
</rabbit:listener-container>
</beans>
3、编写监听类
package com.hao.web.listener;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.core.MessageListener;
/**
* @desc rabbitMQ监听器
* @author zhanh247
*/
public class FooMessageListerer implements MessageListener {
@Override
public void onMessage(Message message) {
String msg = new String(message.getBody());
System.out.println("spring rabbitmq receive message: " + msg);
}
}
4、编写发送消息的测试类
package com.hao;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({ "classpath:spring/spring-rabbit.xml" })
public class RabbitMqTest {
@Autowired
RabbitTemplate rabbitTemplate;
@Test
public void sendMessage() {
rabbitTemplate.convertAndSend("hello spring-rabbit...");
}
}
5、启动spring项目,运行测试类,发送测试消息
看到控制台有如下日志打印出,则说明集成已完成。