需要使用的包
<dependency>
<groupId>org.springframework.amqp</groupId>
<artifactId>spring-amqp</artifactId>
<version>1.0.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.amqp</groupId>
<artifactId>spring-rabbit</artifactId>
<version>1.0.0.RELEASE</version>
</dependency>
fanout交换器配置
<!-- 连接rabbitmq-->
<rabbit:connection-factory id="connectionFactory"
host="10.211.55.8" port="5672"
username="uwo" password="yan5845hao"
virtual-host="/"/>
<rabbit:admin connection-factory="connectionFactory"/>
<!-- 声明队列-->
<rabbit:queue name="uwo.rabbitMQ.test" durable="true" auto-delete="false" exclusive="false" />
<!--Fanout: 不管消息的routing key和参数表的头信息/值是什么, 消息将会路由到该队列上。-->
<rabbit:fanout-exchange name="uwo.fanout" durable="true" auto-delete="false">
<rabbit:bindings>
<rabbit:binding queue="uwo.rabbitMQ.test"/>
</rabbit:bindings>
</rabbit:fanout-exchange>
<!--定义rabbit template用于数据的接收和发送-->
<rabbit:template id="rabbitTemplate" exchange="uwo.fanout" connection-factory="connectionFactory"/>
<!-- 监听的队列-->
<rabbit:listener-container connection-factory="connectionFactory" acknowledge="auto">
<rabbit:listener ref="listen" method="listen" queue-names="uwo.rabbitMQ.test" />
</rabbit:listener-container>
<!-- 监听器-->
<bean id="listen" class="com.uwo.resources.ui.mq.QueueListener"/>
topic交换器配置
<!-- 连接rabbitmq-->
<rabbit:connection-factory id="connectionFactory"
host="10.211.55.8" port="5672"
username="uwo" password="yan5845hao"
virtual-host="/"/>
<rabbit:admin connection-factory="connectionFactory"/>
<!-- 声明队列-->
<rabbit:queue name="uwo.rabbitMQ.test" durable="true" auto-delete="false" exclusive="false" />
<!--Fanout: 不管消息的routing key和参数表的头信息/值是什么, 消息将会路由到该队列上。-->
<rabbit:topic-exchange name="uwo.topic" durable="true" auto-delete="false">
<rabbit:bindings>
<rabbit:binding queue="uwo.rabbitMQ.test" pattern="#.asm" />
<rabbit:binding queue="uwo.rabbitMQ.test" pattern="#.aspectj" />
</rabbit:bindings>
</rabbit:topic-exchange>
<!--定义rabbit template用于数据的接收和发送-->
<rabbit:template id="rabbitTemplate" exchange="uwo.topic" connection-factory="connectionFactory"/>
<!-- 监听的队列-->
<rabbit:listener-container connection-factory="connectionFactory" acknowledge="auto">
<rabbit:listener ref="listen" method="listen" queue-names="uwo.rabbitMQ.test" />
</rabbit:listener-container>
<!-- 监听器-->
<bean id="listen" class="com.uwo.resources.ui.mq.QueueListener"/>
direct交换器配置
<!-- 连接rabbitmq-->
<rabbit:connection-factory id="connectionFactory"
host="10.211.55.8" port="5672"
username="uwo" password="yan5845hao"
virtual-host="/"/>
<rabbit:admin connection-factory="connectionFactory"/>
<!-- 声明队列-->
<rabbit:queue name="uwo.rabbitMQ.test" durable="true" auto-delete="false" exclusive="false" />
<!--Fanout: 不管消息的routing key和参数表的头信息/值是什么, 消息将会路由到该队列上。-->
<rabbit:direct-exchange name="uwo.direct" durable="true" auto-delete="false">
<rabbit:bindings>
<rabbit:binding queue="uwo.rabbitMQ.test" key="com.uwo.asm"></rabbit:binding>
<rabbit:binding queue="uwo.rabbitMQ.test" key="com.uwo.aspectj"></rabbit:binding>
</rabbit:bindings>
</rabbit:direct-exchange>
<!--定义rabbit template用于数据的接收和发送-->
<rabbit:template id="rabbitTemplate" exchange="uwo.direct" connection-factory="connectionFactory"/>
<!-- 监听的队列-->
<rabbit:listener-container connection-factory="connectionFactory" acknowledge="auto">
<rabbit:listener ref="listen" method="listen" queue-names="uwo.rabbitMQ.test" />
</rabbit:listener-container>
<!-- 监听器-->
<bean id="listen" class="com.uwo.resources.ui.mq.QueueListener"/>
headers交换器配置
<!-- 连接rabbitmq-->
<rabbit:connection-factory id="connectionFactory"
host="10.211.55.8" port="5672"
username="uwo" password="yan5845hao"
virtual-host="/"/>
<rabbit:admin connection-factory="connectionFactory"/>
<!-- 声明队列-->
<rabbit:queue name="uwo.rabbitMQ.test" durable="true" auto-delete="false" exclusive="false" />
<!--Fanout: 不管消息的routing key和参数表的头信息/值是什么, 消息将会路由到该队列上。-->
<rabbit:headers-exchange name="uwo.headers" durable="true" auto-delete="false">
<rabbit:bindings>
<rabbit:binding queue="uwo.rabbitMQ.test" key="uwo" value="yanhao"></rabbit:binding>
<rabbit:binding queue="uwo.rabbitMQ.test" key="YH" value="uwowu"></rabbit:binding>
</rabbit:bindings>
</rabbit:headers-exchange>
<!--定义rabbit template用于数据的接收和发送-->
<rabbit:template id="rabbitTemplate" exchange="uwo.headers" connection-factory="connectionFactory"/>
<!-- 监听的队列-->
<rabbit:listener-container connection-factory="connectionFactory" acknowledge="auto">
<rabbit:listener ref="listen" method="listen" queue-names="uwo.rabbitMQ.test" />
</rabbit:listener-container>
<!-- 监听器-->
<bean id="listen" class="com.uwo.resources.ui.mq.QueueListener"/>