对于最新的稳定版本,请使用 Spring Framework 6.2.10spring-doc.cadn.net.cn

JMS(Java 消息服务)

Spring提供了一个JMS集成框架,该框架在许多方面简化了JMS API的使用 与 Spring 的 JDBC API 集成方式相同。spring-doc.cadn.net.cn

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

org.springframework.jms.corepackage 提供了使用 JMS。它包含 JMS 模板类,通过处理 创建和释放资源,就像JdbcTemplate为 JDBC 做。这 Spring模板类通用的设计原则是提供辅助方法来 执行常见作,为了更复杂地使用,委托 处理任务到用户实现的回调接口。JMS 模板遵循 相同的设计。这些类提供了各种发送消息的便捷方法, 同步使用消息,并将 JMS 会话和消息生产者公开给 用户。spring-doc.cadn.net.cn

org.springframework.jms.supportpackage 提供JMSException译本 功能性。翻译将选中的JMSExceptionhierarchy 设置为 未检查异常的镜像层次结构。如果有任何特定于提供程序的子类 的检查jakarta.jms.JMSExceptionexist,则此异常包装在 猖獗UncategorizedJmsException.spring-doc.cadn.net.cn

org.springframework.jms.support.converterpackage 提供了一个MessageConverter抽象,用于在 Java 对象和 JMS 消息之间进行转换。spring-doc.cadn.net.cn

org.springframework.jms.support.destinationpackage 提供了多种策略 用于管理 JMS 目标,例如为目标提供服务定位器 存储在 JNDI 中。spring-doc.cadn.net.cn

org.springframework.jms.annotationpackage 提供必要的基础设施 通过使用@JmsListener.spring-doc.cadn.net.cn

org.springframework.jms.configpackage 为jms命名空间以及 Java 配置支持来配置侦听器容器和 创建侦听器终结点。spring-doc.cadn.net.cn

最后,org.springframework.jms.connectionpackage 提供了 这ConnectionFactory适用于独立应用。它还包含一个 Spring 的PlatformTransactionManager对于 JMS(狡猾地命名为JmsTransactionManager).这允许将 JMS 无缝集成为事务性 资源添加到 Spring 的事务管理机制中。spring-doc.cadn.net.cn

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

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