Spring提供了一個JMS集成框架,簡化了JMS API的使用,就像Spring集成JDBC API。
JMS能夠大體分爲兩個功能區域,即消息的生產和消費。 JmsTemplate類用於消息生成和同步消息接收。對於相似於Java EE的消息驅動bean樣式的異步接收,Spring提供了許多用於建立消息驅動的POJO(MDP)的消息偵聽容器。 Spring還提供了一種建立消息偵聽器的聲明式方法。html
JmsTemplate類是JMS核心包中的中心類。它簡化了JMS的使用,由於它在發送或同步接收消息時處理資源的建立和釋放。java
標準API涉及建立許多中間對象。 要發送消息,將執行如下步驟執行:
ConnectionFactory-> Connection-> Session-> MessageProducer-> send
在ConnectionFactory和發送操做之間,有三個中間對象被建立和銷燬。 爲了優化資源使用和提升性能,提供了ConnectionFactory的兩個實現。spring
Spring提供了ConnectionFactory接口的一個實現,SingleConnectionFactory,將在全部createConnection()調用上返回相同的Connection,並忽略對close()的調用。緩存
CachingConnectionFactory擴展了SingleConnectionFactory的功能,並添加了Sessions,MessageProducers和MessageConsumers的緩存。初始高速緩存大小設置爲1,使用屬性sessionCacheSize增長高速緩存的會話數。session
JmsTemplate有各類發送方法,它們將Java對象做爲消息數據內容的參數。 JmsTemplate中的重載方法convertAndSend()和receiveAndConvert()將轉換過程委派給MessageConverter接口的實例。這個接口定義一個簡單的契約,在Java對象和JMS消息之間進行轉換。默認實現SimpleMessageConverter支持在String和TextMessage之間轉換,byte []和BytesMesssage,以及java.util.Map和MapMessage。經過使用轉換器,您和您的應用程序代碼能夠專一於經過JMS發送或接收的業務對象,而不關心它如何表示爲JMS消息的細節。框架