我使用 Spring JMS 和 ActiveMQ 作为代理并在 Tomcat 上运行应用程序。我见过许多使用receiveSelected(..) 与指定消息选择器同步接收消息的示例。但是我找不到任何方法来动态指定 jms:listener-container 上的消息选择器以异步接收消息。选择器仅在运行时才知道。
我能想到的唯一方法是改用 DefaultMessageListenerContainer 并在每次需要新选择器时创建一个新实例。但我不确定这是否是正确的方法和这样做的最佳实践。例如,与选择器关联的 listenerContainer 是否应该被缓存?什么时候应该关闭等?
如果有人能给我举个例子或概述处理这种情况的策略,我将不胜感激。
提前致谢!