1.搭建web环境(本人采用maven构建工具)仅列出rabbit jar包pom相关配置文件:如下
<dependency>
<groupId>org.springframework.amqp</groupId>
<artifactId>spring-rabbit</artifactId>
<version>1.2.2.RELEASE</version>
</dependency>
2.spring文件配置
<!-- 获取mq的连接工厂 -->
<bean id="connectionFactory"
class="org.springframework.amqp.rabbit.connection.CachingConnectionFactory"
p:username="guest" p:password="guest" p:port="5672">
<constructor-arg value="localhost" />
</bean>
<!-- 创建rabbitTemplate 消息模板类 -->
<bean id="rabbitTemplate" class="org.springframework.amqp.rabbit.core.RabbitTemplate">
<constructor-arg ref="connectionFactory"></constructor-arg>
</bean>
<!-- 创建消息转换器为SimpleMessageConverter -->
<bean id="serializerMessageConverter" class="org.springframework.amqp.support.converter.SimpleMessageConverter"></bean>
<!-- 设置持久化的队列 -->
<bean id="queue" class="org.springframework.amqp.core.Queue">
<constructor-arg index="0" value="testQueue"></constructor-arg>
<constructor-arg index="1" value="true"></constructor-arg>
<constructor-arg index="2" value="false"></constructor-arg>
<constructor-arg index="3" value="false"></constructor-arg>
</bean>
<!--创建交换器的类型 并绑定队列-->
<rabbit:topic-exchange name="testExchange" >
<rabbit:bindings>
<rabbit:binding queue="queue" pattern="testQueue.*"/>
<rabbit:binding queue="queue1" pattern="testQueue.#"/>
</rabbit:bindings>
</rabbit:topic-exchange>
<!-- 用于接收消息的处理类 -->
<bean id="rmqConsumer" class="com.mq.newway.MyRmqConsumer"></bean>
<bean id="messageListenerAdapter" class="org.springframework.amqp.rabbit.listener.adapter.MessageListenerAdapter">
<constructor-arg ref="rmqConsumer" />
<property name="defaultListenerMethod" value="fetchRmqProducerMessage"></property>
<property name="messageConverter" ref="serializerMessageConverter"></property>
</bean>
<!-- 监听队列queues可以传多个-->
<bean id="listenerContainer" class="org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer">
<property name="queues" ref="queue"></property>
<property name="connectionFactory" ref="connectionFactory"></property>
<property name="messageListener" ref="messageListenerAdapter"></property>
</bean>
3.发送消息
rabbitTemplate.convertAndSend("testExchange", "testQueue", msg);
4.监听消息的MyRmqConsumer实体中fetchRmqProducerMessage方法
public void fetchRmqProducerMessage(Object object){
RabbitMessage rabbitMessage=(RabbitMessage) object;
System.out.println(rabbitMessage);
}