Spring提供了一个用于简化JMS API使用的抽象框架,并且对用户屏蔽了JMS API中1.0.2和1.1版本的差异。
JMS的功能大致上分为两块,叫做消息制造和消息消耗。JmsTemplate
用于制造消息和同步消息接收。和Java EE的事件驱动bean风格类似,对于异步接收消息,Spring提供了一些消息侦听容器来创建消息驱动的POJO(MDP)。
org.springframework.jms.core
包提供使用JMS的核心功能。
就象为JDBC提供的JdbcTemplate
一样,它提供了JMS模板类来处理资源的创建和释放以简化JMS的使用。Spring模板类的公共设计原则就是通过提供助手方法去执行公共的操作,并将实际的处理任务委派到用户实现的回调接口上,从而完成更复杂的操作。
JMS模板也遵循这样的设计原则。这些类提供众多便利的方法来发送消息、同步接收消息、
使用户可以接触到JMS session和消息产生者。
org.springframework.jms.support
包提供JMSException的转换功能。它将受控的 JMSException异常层次转换到一个对应的非受控异常层次。任何受控javax.jms.JMSException异常的子类都被包装在非受控UncategorizedJmsException异常里。
org.springframework.jms.support.converter
包提供一个MessageConverter
用来抽象Java对象和JMS消息之间的转换操作。
包org.springframework.jms.support.destination
为管理JMS目的地提供多种策略,例如为存储在JNDI中的目的地提供一个服务定位器。
最后,org.springframework.jms.connection
包提供一个适合在独立应用中使用的
ConnectionFactory
的实现。它还为JMS提供了一个Spring的PlatformTransactionManager
的实现(现在叫做JmsTransactionManager
)。
这样可以把JMS作为一个事务资源无缝地集成到Spring的事务管理机制中去。