首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

利用Spring中的JmsTemplate回进行ActiveMQ的整合

2013-02-19 
利用Spring中的JmsTemplate来进行ActiveMQ的整合? ?发送消息?? ?template.send((javax.jms.Destination) d

利用Spring中的JmsTemplate来进行ActiveMQ的整合

? ?发送消息

?

? ?

template.send((javax.jms.Destination) destination, new MessageCreator(){                  public Message createMessage(Session session) throws JMSException {                      return session.createTextMessage("hello");                  }  

接受消息

?

jmsTemplate接收消息十分的简单,只需要调用template.receive()方法,receive方法是同步的,默认情况下,对receive()方法的调用会造成阻塞,知道消息到达目标----如果必要,永远等下去。为了避免对消息内容等待,可以配置jmsTemplate时,通过设置receiveTimeout属性来指定接收消息超时间。template.receive()会从默认目标接收消息,如果你希望指定一个目标,可以传一个目标。如:template.receive("myQueue").

同步接收消息并不是spring唯一的选择,消息监听器可以实现异步。activemq提供了messageListener接口,来为我们实现异步的接收消息。这样我们就不需要再手动的调用receive方法获取信息,当有消息发送到队列中时,就会自动的接受消息。我采用的是多线程异步的方式,效率要比同步的好一些。

?

?

自动将消息转化为Java对象

Spring通过MessageConverter接口提供了对消息转换的支持。此时,发送和接收消息要换成template.convertAndSend(message);template.receiveAndConvert();

可是jmsTemplate如何知道消息转换器呢?需要在配置jmsTemplate的时候,加上messageConverter属性。

<property?name="messageConverter"?ref="messageObj"></property>?

?

热点排行