我需要根据配置值创建一个可变数量的这些,目的是让多个使用者对应一个物理资源,每次只能由一件物品来处理消息。
答案 0 :(得分:2)
我实现了一个容器,它管理多个DefaultMessageListenerContainer实例,它是基于一个原型实例(如果是监听器)创建的。基于系统属性(#值),创建了许多侦听器,并且他们侦听的队列是数字“my.Queue”+序号。显然可以修改它以在必要时查找队列名称。话虽如此,这不是一个动态扩展/收缩的听众列表。它们是在开始时创建的,但我认为你可以将它作为一个起点,使它更具动态性。如果你愿意的话。
我写了一个非常基本的单元测试和一个非常基本的实现(没有考虑多线程),它似乎工作。
maven项目可以在这里下载 - http://dl.dropbox.com/u/7812537/StackOverflowMultipleListeners.zip
BTW - 这里有一个有趣的主题 - http://forum.springsource.org/showthread.php?t=69604
我认为可以通过扩展泛型bean工厂来实现这一目标,但我不确定您的要求是什么。