spring JmsTemplate的sendAndReceive方法

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的结果。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值