完成一个基于消息驱动的消费者
生产者的配置文件和java程序可参考我的博客:
RabbitMQ在Spring中的示例(一)
1、消费者的配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/rabbit"
xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/rabbit
http://www.springframework.org/schema/rabbit/spring-rabbit-1.0.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<connection-factory
id="connectionFactory"
host="localhost"
port="5672"
username="guest"
password="guest"
/>
<!-- 需要指定从哪个队列获取消息 -->
<listener-container connection-factory="connectionFactory">
<listener ref="spittleListener"
method="handleSpittleAlert"
queue-names="spittle.alerts1"/>
</listener-container>
<beans:bean id="spittleListener" class="com.spring.amqp.SpittleAlertHandler"/>
</beans:beans>
2、消费者的JAVA程序
消息驱动的AMQP POJO
[SpittleAlertHandler.java]
package com.spring.amqp;
import com.spring.domain.Spittle;
/**
* @package com.spring.amqp
* @file SpittleAlertHandler.java
* @description
* @author spring
* @time 2020/6/28 21:28
* @version 1.0
*/
//配置文件中的bean类名与这里类名相同
public class SpittleAlertHandler {
//配置文件中的method方法名与这里方法名相同
public void handleSpittleAlert(Spittle spittle) {
//对接收到的消息进行业务处理
System.out.println(spittle.getMessage()+ " posted at "+spittle.getPostedTime());
}
}
消费者的Spring程序
[ConsumerMainForMessageDrivenPojo.java]
package com.spring.amqp;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
* @package com.spring.amqp
* @file ConsumerMainForMessageDrivenPOJO.java
* @description
* @author spring
* @time 2020/6/28 21:36
* @version 1.0
*/
public class ConsumerMainForMessageDrivenPojo {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("/spring/amqp-consumer-messagedrivenpojo1.xml");
System.out.println("如果有消息到来,则驱动处理消息的业务逻辑......");
}
}
3、运行截图
先运行消息的消费者,再运行消息的生成者。