JMS (Java Message Service)
Spring 提供了一个 JMS 集成框架,它以与 Spring 对 JDBC API 的集成非常相似的方式,简化了 JMS API 的使用。
JMS 大致可以分为两个功能区域,即消息的生产和消费。JmsTemplate
类用于消息生产和同步消息接收。对于类似于 Jakarta EE 消息驱动 Bean 风格的异步接收,Spring 提供了许多消息监听器容器,您可以使用它们来创建消息驱动 POJO (MDPs)。Spring 还提供了一种声明式创建消息监听器的方法。
org.springframework.jms.core
包提供了使用 JMS 的核心功能。它包含 JMS 模板类,这些类通过处理资源的创建和释放来简化 JMS 的使用,就像 JdbcTemplate
对 JDBC 所做的那样。Spring 模板类共同的设计原则是提供辅助方法来执行常见操作,并且对于更复杂的用法,将处理任务的本质委托给用户实现的回调接口。JMS 模板遵循相同的设计。这些类提供了各种便利方法来发送消息、同步消费消息,并向用户公开 JMS 会话和消息生产者。
org.springframework.jms.support
包提供了 JMSException
转换功能。该转换将检查型 JMSException
层次结构转换为镜像的非检查型异常层次结构。如果存在任何提供者特定的检查型 jakarta.jms.JMSException
子类,则此异常将被包装在非检查型 UncategorizedJmsException
中。
org.springframework.jms.support.converter
包提供了一个 MessageConverter
抽象,用于在 Java 对象和 JMS 消息之间进行转换。
org.springframework.jms.support.destination
包提供了各种管理 JMS 目标(destination)的策略,例如为存储在 JNDI 中的目标提供服务定位器。
org.springframework.jms.annotation
包提供了必要的基础设施,通过使用 @JmsListener
支持注解驱动的监听器端点。
org.springframework.jms.config
包提供了 jms
命名空间的解析器实现,以及用于配置监听器容器和创建监听器端点的 Java 配置支持。
最后,org.springframework.jms.connection
包提供了一个适用于独立应用程序的 ConnectionFactory
实现。它还包含 Spring 的 JMS PlatformTransactionManager
实现(巧妙地命名为 JmsTransactionManager
)。这使得 JMS 作为事务性资源能够无缝集成到 Spring 的事务管理机制中。