上一篇文章中介紹了如何安裝和運作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下載下傳。