JMS(Java 消息服务)

Spring 提供了一个 JMS 集成框架,该框架在很大程度上简化了 JMS API 的使用。 与 Spring 对 JDBC API 的集成方式相同。spring-doc.cn

JMS 大致可以分为两个功能领域,即生产和 消息的消费。该类用于消息生成, 同步消息接收。对于类似于 Jakarta EE 的异步接收 消息驱动的 bean 样式,Spring 提供了许多消息侦听器容器,这些容器 可用于创建消息驱动的 POJO (MDP)。Spring 还提供了一种声明性方式 创建消息侦听器。JmsTemplatespring-doc.cn

该软件包提供了使用 JMS 的。它包含 JMS 模板类,这些类通过处理 创建和释放资源,与 JDBC 非常相似。这 Spring 模板类的共同设计原则是提供辅助方法,以 执行常见操作,对于更复杂的用法,委托 处理任务分配给用户实现的回调接口。JMS 模板遵循 相同的设计。这些类提供了各种方便的方法来发送消息, 同步使用消息,并将 JMS 会话和消息生成者公开给 用户。org.springframework.jms.coreJdbcTemplatespring-doc.cn

该软件包提供翻译 功能性。转换会将选中的层次结构转换为 未检查异常的镜像层次结构。如果任何特定于提供程序的子类 中,此异常包装在 猖獗。org.springframework.jms.supportJMSExceptionJMSExceptionjakarta.jms.JMSExceptionUncategorizedJmsExceptionspring-doc.cn

该软件包提供了一个抽象,用于在 Java 对象和 JMS 消息之间进行转换。org.springframework.jms.support.converterMessageConverterspring-doc.cn

该软件包提供了各种策略 用于管理 JMS 目标,例如为目标提供服务定位器 存储在 JNDI 中。org.springframework.jms.support.destinationspring-doc.cn

该软件包提供了必要的基础设施 通过使用 .org.springframework.jms.annotation@JmsListenerspring-doc.cn

该软件包为命名空间提供了解析器实现,以及用于配置侦听器容器和 创建侦听器终端节点。org.springframework.jms.configjmsspring-doc.cn

最后,该软件包提供了 适合在独立应用程序中使用。它还包含一个 Spring 的 JMS 实现(巧妙地命名为 )。这允许将 JMS 无缝集成为事务 资源导入到 Spring 的事务管理机制中。org.springframework.jms.connectionConnectionFactoryPlatformTransactionManagerJmsTransactionManagerspring-doc.cn

从 Spring Framework 5 开始,Spring 的 JMS 包完全支持 JMS 2.0,并且需要 JMS 2.0 API 的运行。我们建议使用与 JMS 2.0 兼容的提供程序。spring-doc.cn

如果您碰巧在系统中使用了较旧的消息代理,则可以尝试升级到 适用于现有代理代的 JMS 2.0 兼容驱动程序。或者,您也可以 尝试针对基于 JMS 1.1 的驱动程序运行,只需将 JMS 2.0 API jar 放在 classpath 的 API 中,但仅使用与 JMS 1.1 兼容的 API 来对付您的驱动程序。Spring 的 JMS 支持 默认情况下遵循 JMS 1.1 约定,因此使用相应的配置时,它确实 支持这样的场景。但是,请仅针对过渡方案考虑这一点。spring-doc.cn