RabbitMQ学习笔记三:Java实现RabbitMQ之与Spring集成
搭建好maven项目环境,加入RabbitMQ依赖包
<dependency> <groupId>org.springframework.amqp</groupId> <artifactId>spring-rabbit</artifactId> <version>1.3.5.RELEASE</version> </dependency>
RabbitMQ需要有生产者和消费者,因此,需要搭建两个项目,如下截图:
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创建,创建方式如下截图:
创建完成后,再启动项目,发送消息到队列中,就不会报错了。
启动项目,访问:http://localhost:8080/customer/index.jsp。点击发送,如下:
查看后台运行结果,如下:
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