26.1 介绍
Spring 提供了一个 JMS 的集成框架,简化了 JMS API 的使用,就像 Spring 对 JDBC API 的集成一样。
JMS 大致可分为两块功能,即消息的生产与消费。JmsTemplate
类用于消息生产和消息的同步接收。 对于类似 Java EE 的消息驱动 Bean 形式的异步接收,Spring 提供了大量用于创建消息驱动 POJOs(MDPs)的消息监听器。Spring 还提供了一种创建消息侦听器的声明式方法。
org.springframework.jms.core
包提供了使用 JMS 的核心功能。它包含了 JMS 模板类,用来处理资源的创建与释放,从而简化 JMS 的使用,就像JdbcTemplate
对 JDBC 做的一样。像其他大多数 Spring 模板类一样,JMS 模板类提供了执行公共操作的 helper 方法。在需要更复杂应用的情况下,类把处理任务的核心委托给用户实现的回调接口。JMS 类提供了方便的方法,用来发送消息、同步地使用消息以及向用户公开 JMS 会话和消息的生产者。
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.annotation
包提供了支持注解驱动监听端点的必要基础架构,通过使用@JmsListener
实现。
org.springframework.jms.config
包提供了 JMS 命名空间的解析实现,以及配置监听容器和创建监听端点的 java 配置支持。
最后,org.springframework.jms.connection
包提供了适用于独立应用程序的ConnectionFactory
实现。 它还包含 Spring 对 JMS 的PlatformTransactionManager
实现(即JmsTransactionManager
)。这将允许 JMS 作为事务性资源无缝集成到 Spring 的事务管理机制中。