JMS(Java消息服务)
Spring 提供了一个 JMS 集成框架,其简化 JMS API 的使用方式与 Spring 对 JDBC API 的集成方式非常相似。
JMS大致可以分为两个功能领域,即消息的生产和消费。JmsTemplate类用于消息生产及同步消息接收。对于类似Jakarta EE的消息驱动bean风格的异步接收,Spring提供了多种消息监听器容器,可用于创建消息驱动的POJO(MDP)。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 消息之间进行转换。
The org.springframework.jms.support.destination package provides various strategies
for managing JMS destinations, such as providing a service locator for destinations
stored in JNDI.
org.springframework.jms.annotation 包提供了通过使用 @JmsListener 支持注解驱动的监听器端点所需的基础设施
org.springframework.jms.config 包提供了 jms 命名空间的解析器实现,以及用于配置监听器容器和创建监听器端点的 Java 配置支持。
最后,org.springframework.jms.connection 包提供了一个适用于独立应用程序的ConnectionFactory的实现。它还包含 Spring 的 PlatformTransactionManager 对 JMS 的实现(巧妙地命名为 JmsTransactionManager)。这使得 JMS 可以无缝集成到 Spring 的事务管理机制中作为事务资源。