天天看點

ActiveMQ第二彈:使用Spring JMS與ActiveMQ通訊

上一篇文章中介紹了如何安裝和運作ActiveMQ。這一章主要講述如何使用Spring JMS向ActiveMQ的Message Queue中發消息和讀消息。

首先需要在項目中引入依賴庫。

spring-core: 用于啟動Spring容器,加載bean。

spring-jms:使用Spring JMS提供的API。

activemq-all:使用ActiveMQ提供的API。

在本示例中我使用maven來導入相應的依賴庫。

pom.xml

接下來配置與ActiveMQ的連接配接,以及一個自定義的MessageSender。

springJMSConfiguration.xml

在此配置檔案中,我們配置了一個ActiveMQ的connection factory,使用的是ActiveMQ提供的ActiveMQConnectionFactory類。然後又配置了一個Spring JMS提供的CachingConnectionFactory。我們定義了一個ActiveMQQueue作為消息的接收Queue。并建立了一個JmsTemplate,使用了之前建立的ConnectionFactory和Message Queue作為參數。最後自定義了一個MessageSender,使用該JmsTemplate進行消息發送。

以下MessageSender的實作。

MessageSender.java

這個MessageSender很簡單,就是通過jmsTemplate發送一個字元串資訊。

我們還需要配置一個Listener來監聽和處理目前的Message Queue。

springJMSReceiver.xml

在上述xml檔案中,我們自定義了一個MessageListener,并且使用Spring提供的SimpleMessageListenerContainer作為Container。

以下是MessageLinser的具體實作。

MessageReceiver.java

這個MessageListener也相當的簡單,就是從Queue中讀取出消息以後輸出到目前控制台中。

另外有關ActiveMQ的url和所使用的Message Queue的配置在application.properties檔案中。

application.properties

好了,配置大功告成。如何示範那?我建立了兩個Main方法,一個用于發送消息到ActiveMQ的MessageQueue中,一個用于從MessageQueue中讀取消息。

SenderApp

ReceiverApp.java

OK,如果運作的話要先将ActiveMQ服務啟動起來(更多啟動方式參見我上篇文章)。

然後運作SenderApp中的Main方法,就可以在控制台中輸入消息發送到ActiveMQ的Message Queue中了。運作ReceiverApp中的Main方法,則會從Queue中将消息讀出來,列印到控制台。

這就是使用Spring JMS與ActiveMQ互動的一個簡單例子了。完整代碼可從https://github.com/huangbowen521/SpringJMSSample下載下傳。