producer:
<?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:context="http://www.springframework.org/schema/context"
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/context
https://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/rabbit
http://www.springframework.org/schema/rabbit/spring-rabbit.xsd">
<!--加载配置文件-->
<context:property-placeholder location="classpath:rabbitmq.properties"/>
<!-- 定义rabbitmq connectionFactory -->
<rabbit:connection-factory id="connectionFactory" host="${rabbitmq.host}"
port="${rabbitmq.port}"
username="${rabbitmq.username}"
password="${rabbitmq.password}"
virtual-host="${rabbitmq.virtual-host}"/>
<!-- 定义管理交换机,队列-->
<rabbit:admin connection-factory="connectionFactory"/>
<!--定义持久化队列,不存在则自动创建,不绑定到交换机则默认绑定到默认交换机,默认交换机为direct,名字为"",路由键为队列名称-->
<rabbit:queue id="spring_queue" name="spring_queue" auto-declare="true"></rabbit:queue>
<!--定义广播交换机中的序列化队列,不存在则自动创建-->
<rabbit:queue id="spring_queue_fanout1" name="spring_queue_fanout1" auto-declare="true"></rabbit:queue>
<rabbit:queue id="spring_queue_fanout2" name="spring_queue_fanout2" auto-declare="true"></rabbit:queue>
<!--定义广播类型交换机,并绑定上两个队列-->
<rabbit:fanout-exchange id="fanout_exchange" name="fanout_exchange" auto-declare="true">
<rabbit:bindings>
<rabbit:binding queue="spring_queue_fanout1"></rabbit:binding>
<rabbit:binding queue="spring_queue_fanout2"></rabbit:binding>
</rabbit:bindings>
</rabbit:fanout-exchange>
<!--topic测试-->
<rabbit:queue id="spring_topic_queue1" name="spring_topic_queue1" auto-declare="true"></rabbit:queue>
<rabbit:queue id="spring_topic_queue2" name="spring_topic_queue2" auto-declare="true"></rabbit:queue>
<rabbit:queue id="spring_topic_queue3" name="spring_topic_queue3" auto-declare="true"></rabbit:queue>
<!--定义交换机-->
<rabbit:topic-exchange name="spring_topic_exchange" auto-declare="true">
<rabbit:bindings>
<rabbit:binding pattern="topic.*" queue="spring_topic_queue1"></rabbit:binding>
<rabbit:binding pattern="topic.#" queue="spring_topic_queue2"></rabbit:binding>
<rabbit:binding pattern="error.#" queue="spring_topic_queue3"></rabbit:binding>
</rabbit:bindings>
</rabbit:topic-exchange>
<!--定义rabbitTemplate对象操作可以在代码中方便发送消息-->
<rabbit:template id="rabbitTemplate" connection-factory="connectionFactory"/>
</beans>
consumer:
<?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:context="http://www.springframework.org/schema/context"
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/context https://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/rabbit http://www.springframework.org/schema/rabbit/spring-rabbit.xsd">
<!--加载配置文件-->
<context:property-placeholder location="classpath:rabbitmq.properties"></context:property-placeholder>
<!--定义rabbitmq connectionFactory-->
<rabbit:connection-factory id="connectionFactory"
host="${rabbitmq.host}"
port="${rabbitmq.port}"
username="${rabbitmq.username}"
password="${rabbitmq.password}"
virtual-host="${rabbitmq.virtual-host}"></rabbit:connection-factory>
<!--将监听类交给spring管理-->
<bean id="spring_queue" class="com.tfxing.linstner.queue"></bean>
<bean id="spring_queue_fanout1" class="com.tfxing.linstner.fanout1"></bean>
<bean id="spring_queue_fanout2" class="com.tfxing.linstner.fanout2"></bean>
<bean id="spring_topic_queue1" class="com.tfxing.linstner.topic1"></bean>
<bean id="spring_topic_queue2" class="com.tfxing.linstner.topic2"></bean>
<bean id="spring_topic_queue3" class="com.tfxing.linstner.topic3"></bean>
<!--将监听类和队列进行绑定-->
<rabbit:listener-container connection-factory="connectionFactory" auto-declare="true">
<rabbit:listener ref="spring_queue" queue-names="spring_queue"></rabbit:listener>
<rabbit:listener ref="spring_queue_fanout1" queue-names="spring_queue_fanout1"></rabbit:listener>
<rabbit:listener ref="spring_queue_fanout2" queue-names="spring_queue_fanout2"></rabbit:listener>
<rabbit:listener ref="spring_topic_queue1" queue-names="spring_topic_queue1"></rabbit:listener>
<rabbit:listener ref="spring_topic_queue2" queue-names="spring_topic_queue2"></rabbit:listener>
<rabbit:listener ref="spring_topic_queue3" queue-names="spring_topic_queue3"></rabbit:listener>
</rabbit:listener-container>
</beans>