java - Spring JMS 消息监听器容器

标签 java spring tomcat jms activemq

我是 JMS 的新手,我正在使用 Tomcat 6 和 Spring 设置 ActiveMQ。我已经配置了大部分基本的东西,但是我对 Spring 提供的消息监听器容器有点困惑。阅读文档听起来 Message Listener Container 用于“处理”订阅(我正在处理主题)、取消订阅以及将消息传递给监听器。我不确定我是否在正确考虑这个问题。如果是这种情况,我看不到任何关于如何使用消息监听器容器让多个类订阅同一主题的文档。我看到您可以设置 messageListener 属性,但这只允许一个类能够订阅一个主题。创建同一个消息监听器容器的另一个实例只是为了让另一个订阅者(消息驱动的 POJO)监听同一个主题似乎是不对的。

任何人都可以为我阐明这一点吗?我想我可能有点困惑。

提前致谢!

最佳答案

如果您熟悉消息驱动的 EJB,那么 Spring MessageListenerContainer 可以有效地替代 MDB。它之所以得名,是因为它与 JMS 主题/队列以及单个 JMS MessageListener 相连,它从该主题/队列中提取消息并将它们提供给您的 MessageListener。

每个容器一次只能注册一个 MessageListener,这是非常正确的,但考虑到虽然 MessageListenerContainer 代码可能相当复杂,但它实际上是一个非常轻量级的运行时组件。不要害怕创建它的多个实例。

此外,请确保为您的情况选择合适的 MessageListener 实现。 Simple 和 Default 实现确实有很大不同,但都不是“更好”。

关于java - Spring JMS 消息监听器容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/952672/

相关文章:

java - Eclipse中tomcat添加后重置配置文件

java - JBoss 无法启动,因为地址 localhost :1099 is already in use

java - 使用另一个类的字段类型实例化参数化类

java - 如何使用Spring事务管理将当前用户更新到数据库?

java - Spring Boot 不为 ZonedDateTime 使用自定义反序列化器

Tomcat应用程序: Frequent OutOfMemory PermGen exception while image uploads

java - Web 应用程序创建了一个 ThreadLocal,但未能将其删除 Tomcat [SEVERE]

java - LIbGDX 当语言改变时如何翻译所有文本?

java - B+树 split 错误

spring - 无状态前端grails服务器?