如何在Spring中创建动态数量的DefaultMessageListenerContainer MDPojos?

时间:2010-10-15 08:30:39

标签: java spring jms

我需要根据配置值创建一个可变数量的这些,目的是让多个使用者对应一个物理资源,每次只能由一件物品来处理消息。

1 个答案:

答案 0 :(得分:2)

我实现了一个容器,它管理多个DefaultMessageListenerContainer实例,它是基于一个原型实例(如果是监听器)创建的。基于系统属性(#值),创建了许多侦听器,并且他们侦听的队列是数字“my.Queue”+序号。显然可以修改它以在必要时查找队列名称。话虽如此,这不是一个动态扩展/收缩的听众列表。它们是在开始时创建的,但我认为你可以将它作为一个起点,使它更具动态性。如果你愿意的话。

我写了一个非常基本的单元测试和一个非常基本的实现(没有考虑多线程),它似乎工作。

maven项目可以在这里下载 - http://dl.dropbox.com/u/7812537/StackOverflowMultipleListeners.zip

BTW - 这里有一个有趣的主题 - http://forum.springsource.org/showthread.php?t=69604

我认为可以通过扩展泛型bean工厂来实现这一目标,但我不确定您的要求是什么。