spring JmsTemplate的sendAndReceive方法
发布日期:2021-05-08 12:12:47 浏览次数:18 分类:精选文章

本文共 752 字,大约阅读时间需要 2 分钟。

spring JmsTemplate的sendAndReceive方法:
使用destinationName字符串和MessageCreator的匿名内部类作为参数,JmsMessageVo中的数据装入MessageCreator,执行executeLocal:
使用SessionCallback匿名内部类作为参数,ConnectionFactory创建createConnection一个connection,使用connection.createSession创建session,启动连接connection.start();SessionCallback的实例化对象调用doInJms,传入session作为参数:
resolveDestinationName(session, destinationName)将指定的目的地名解析为目的地实例Destination,执行JmsTemplate的doSendAndReceive(session, destination, messageCreator)方法:
发送消息doSend(producer, requestMessage),接收消息doReceive(consumer, getReceiveTimeout())
默认RECEIVE_TIMEOUT_NO_WAIT=-1,timeout=0,接下来如果执行receiveNoWait()不阻塞等待,直接返回null,receive(timeout)传参表示等待timeout时间,不传表示一直处于阻塞状态等待消息,所以默认情况下会一直阻塞等待。
接收是阻塞式的接收,默认会一直阻塞等待,直到接收到了消息。也可以设置一个最长的等待时间参数,超过这个时间,接收的方法将得到null的结果。
上一篇:ioc容器源码分析(一)
下一篇:面试时遇到的一些问题整理

发表评论

最新留言

感谢大佬
[***.8.128.20]2025年04月02日 15时44分41秒