JMS (Java 消息服务)
Spring 提供了一个 JMS 集成框架,它以与 Spring 的 JDBC API 集成类似的方式简化了 JMS API 的使用。
JMS 大致可以分为消息的生产和消息的消费两个功能领域。JmsTemplate 类用于消息生产和同步消息接收。对于类似于 Jakarta EE 的消息驱动 Bean 风格的异步接收,Spring 提供了许多消息监听器容器,您可以使用它们来创建消息驱动 POJO (MDP)。Spring 还提供了一种声明式方式来创建消息监听器。
org.springframework.jms.core 包提供了使用 JMS 的核心功能。它包含 JMS 模板类,通过处理资源的创建和释放来简化 JMS 的使用,就像 JdbcTemplate 处理 JDBC 一样。Spring 模板类通用的设计原则是提供辅助方法来执行常见操作,对于更复杂的用法,将处理任务的本质委托给用户实现的 callback 接口。JMS 模板遵循相同的设计。这些类提供了各种方便的方法来发送消息、同步消费消息,并将 JMS session 和消息生产者暴露给用户。
org.springframework.jms.support 包提供了 JMSException 翻译功能。该翻译将已检查的 JMSException 层次结构转换为镜像的未检查异常层次结构。如果存在已检查的 jakarta.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 的事务管理机制中。