RabbitMQ学习笔记三:Java实现RabbitMQ之与Spring集成

时间:2023-12-18 17:02:50

搭建好maven项目环境,加入RabbitMQ依赖包

        <dependency>
<groupId>org.springframework.amqp</groupId>
<artifactId>spring-rabbit</artifactId>
<version>1.3.5.RELEASE</version>
</dependency>

RabbitMQ需要有生产者和消费者,因此,需要搭建两个项目,如下截图:

RabbitMQ学习笔记三:Java实现RabbitMQ之与Spring集成

SpringMVC的其他配置就不说了,RabbitMQ在生产者配置为:

<rabbit:connection-factory id="connectionFactory" host="localhost" publisher-confirms="true" virtual-host="/" username="guest" password="guest" />

<rabbit:template id="rabbitTemplate" connection-factory="connectionFactory"/>

RabbitMQ Server安装后,virtual-host为"/",如果需要增加或者修改虚拟主机,可以登录客户端:http://localhost:15672修改。

RabbitMQ在消费者配置为:

<!-- 连接工厂 -->
<rabbit:connection-factory id="connectionFactory" host="localhost" publisher-confirms="true" virtual-host="/" username="guest" password="guest" />
<!-- 监听器 -->
<rabbit:listener-container connection-factory="connectionFactory">
<!-- queues是队列名称,可填多个,用逗号隔开, method是ref指定的Bean调用Invoke方法执行的方法名称 -->
<rabbit:listener queues="red" method="onMessage" ref="redQueueListener" />
<rabbit:listener queues="blue" method="onMessage" ref="blueQueueListener" />
</rabbit:listener-container>
<!-- 队列声明 -->
<rabbit:queue name="red" durable="true" />
<!-- 队列声明 -->
<rabbit:queue name="blue" durable="true" />
<!-- 红色监听处理器 -->
<bean id="redQueueListener" class="com.aitongyi.customer.RedQueueListener" />
<!-- 颜色监听处理器 -->
<bean id="blueQueueListener" class="com.aitongyi.customer.BlueQueueListener" />

这里配置的队列需要在安装的RabbitMQ Server创建,创建方式如下截图:

RabbitMQ学习笔记三:Java实现RabbitMQ之与Spring集成

创建完成后,再启动项目,发送消息到队列中,就不会报错了。

启动项目,访问:http://localhost:8080/customer/index.jsp。点击发送,如下:

RabbitMQ学习笔记三:Java实现RabbitMQ之与Spring集成

查看后台运行结果,如下:

2017-05-15 10:08:56 995 [INFO] c.a.p.c.RabbitController - rabbitmq--收到待发送消息: type[red]-msg[hello world red rabbit!]
2017-05-15 10:08:57 125 [INFO] c.a.p.s.RabbitServiceImpl - rabbitmq--发送消息完成: routingKey[red]-msg[hello world red rabbit!]
2017-05-15 10:08:57 137 [INFO] c.a.c.RedQueueListener - RedQueueListener Receved:hello world red rabbit!

RedQueueListener监听器接收到了发送的消息。

源代码已上传百度云网盘,欢迎下载阅读,地址:http://pan.baidu.com/s/1hsbwTDy