对 JCA 消息端点的支持

从 2.5 版本开始,Spring 还提供了对基于 JCA 的 MessageListener 容器的支持。 JmsMessageEndpointManager 尝试从提供者的 ResourceAdapter 类名中自动确定 ActivationSpec 类名。因此,通常可以提供 Spring 的通用 JmsActivationSpecConfig,如以下示例所示:

或者,您可以使用给定的 ActivationSpec 对象设置 JmsMessageEndpointManagerActivationSpec 对象也可以来自 JNDI 查找(使用 <jee:jndi-lookup>)。以下示例展示了如何实现:

有关更多详细信息,请参阅 JmsMessageEndpointManagerJmsActivationSpecConfigResourceAdapterFactoryBean 的 Javadoc。

Spring 还提供了一个不限于 JMS 的通用 JCA 消息端点管理器: org.springframework.jca.endpoint.GenericMessageEndpointManager。此组件允许 使用任何消息监听器类型(例如 JMS MessageListener)和任何 特定于提供者的 ActivationSpec 对象。请参阅您的 JCA 提供者文档以了解 连接器的实际功能,并参阅 GenericMessageEndpointManager 的 Javadoc 以获取 Spring 特定的配置详细信息。

基于 JCA 的消息端点管理与 EJB 2.1 消息驱动 Bean 非常相似。 它使用相同的底层资源提供者契约。与 EJB 2.1 MDB 一样,您也可以在 Spring 上下文中使用 JCA 提供者支持的任何消息监听器接口。 尽管如此,Spring 仍然为 JMS 提供了明确的“便利”支持,因为 JMS 是 与 JCA 端点管理契约一起使用的最常见的端点 API。