Spring集成RabbitMQ
来源:互联网 发布:淘宝评价福利图 编辑:程序博客网 时间:2024/05/01 01:24
1、所需jar包(maven 依赖)
<dependency> <groupId>org.springframework.amqp</groupId> <artifactId>spring-rabbit</artifactId> <version>1.6.3.RELEASE</version> </dependency>
2、spring 的xml中配置RabbitMQ
<!--配置connection-factory,指定连接rabbit server参数 --> <rabbit:connection-factory id="connectionFactory" username="${RabbitMQ.username}" password="${RabbitMQ.password}" host="${RabbitMQ.host}" port="${RabbitMQ.port}" /> <!--声明多个消息队列 queue --> <rabbit:queue id="queue1" name="queue1" durable="true" auto-delete="false" exclusive="false" /> <rabbit:queue id="queue2" name="queue2" durable="true" auto-delete="false" exclusive="false" /> <rabbit:queue id="queue3" name="queue3" durable="true" auto-delete="false" exclusive="false" /> <!--定义rabbit template用于数据的接收和发送 --> <rabbit:template id="amqpTemplate" connection-factory="connectionFactory" exchange="exchangeTest" /> <!--通过指定下面的admin信息,当前producer中的exchange和queue会在rabbitmq服务器上自动生成 --> <rabbit:admin connection-factory="connectionFactory" /> <!-- 消息接收者 --> <bean id="messageReceiver" class="com.jpxcw.rabbitmq.MessageConsumer"></bean> <!-- queue litener 观察 监听模式 当有消息到达时会通知监听在对应的队列上的监听对象--> <rabbit:listener-container connection-factory="connectionFactory"> <rabbit:listener queues="queue1,queue2,queue3" ref="messageReceiver"/> </rabbit:listener-container> <!-- 定义direct exchange,绑定queue --> <rabbit:direct-exchange name="exchangeTest" durable="true" auto-delete="false"> <rabbit:bindings> <rabbit:binding queue="queue1" key="queueTestKey1"></rabbit:binding> <rabbit:binding queue="queue2" key="queueTestKey2"></rabbit:binding> <rabbit:binding queue="queue3" key="queueTestKey3"></rabbit:binding> </rabbit:bindings> </rabbit:direct-exchange>
3、生产者
import javax.annotation.Resource;import org.springframework.amqp.core.AmqpTemplate;import org.springframework.stereotype.Service;@Servicepublic class MessageProducer { @Resource private AmqpTemplate amqpTemplate; public void sendMessage(String queueKey,Object message){ amqpTemplate.convertAndSend(queueKey,message); }}
4、消费者
import org.springframework.amqp.core.Message;import org.springframework.amqp.core.MessageListener;public class MessageConsumer implements MessageListener{ @Override public void onMessage(Message message) { System.out.println(message); }}
5、接口测试
@RestControllerpublic class Controller { @Autowired private MessageProducer mqProducer; final String queue_key = "queueTestKey1"; @RequestMapping(value="/rbmq", method = RequestMethod.GET) public void send(){ String mq="spring and rabmp!"; mqProducer.sendMessage(queue_key,mq); }}
6、结果输出
(Body:'spring and rabmp!' MessageProperties [headers={}, timestamp=null, messageId=null, userId=null, receivedUserId=null, appId=null, clusterId=null, type=null, correlationId=null, correlationIdString=null, replyTo=null, contentType=text/plain, contentEncoding=UTF-8, contentLength=0, deliveryMode=null, receivedDeliveryMode=PERSISTENT, expiration=null, priority=0, redelivered=false, receivedExchange=exchangeTest, receivedRoutingKey=queueTestKey1, receivedDelay=null, deliveryTag=3, messageCount=0, consumerTag=amq.ctag-OS16HeTstwO8mkfq9XnC8Q, consumerQueue=queue1])
0 0
- spring集成rabbitmq
- Spring集成rabbitMQ
- Spring集成RabbitMQ
- spring-boot 集成 rabbitmq
- Spring boot集成RabbitMQ
- spring集成rabbitmq
- spring boot集成rabbitmq
- Spring Boot RabbitMQ 集成
- rabbitMQ与Spring集成
- spring-boot 集成 rabbitmq
- Spring Boot 集成RabbitMQ
- Spring Boot 集成RabbitMQ
- spring-boot 集成 rabbitmq
- spring集成rabbitMQ
- Spring集成RabbitMQ
- rabbitMQ第五篇:Spring集成RabbitMQ
- RabbitMQ (九) Spring集成RabbitMQ(1)
- RabbitMQ (十) Spring集成RabbitMQ(2)
- openlayses开发
- ASP.Net: EshineASPNet-基于ASP.Net敏捷开发开源框架
- MySQL分区
- mysql sum为空时默认显示0
- 20行JS代码贪吃蛇
- Spring集成RabbitMQ
- python 3.0 网络爬虫 2
- MD5算法
- FAT文件系统与EMMC存储芯片适配与性能优化
- 2017年一个新的开始
- mysql数据入门管理
- 【R】在centOS7下编译安装R3.3.2和R
- 数据意识崛起,从企业应用看BI软件的未来发展
- CSS实现垂直和s水平下拉菜单