Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JMS动态创建主题_Java_Spring_Jms - Fatal编程技术网

Java JMS动态创建主题

Java JMS动态创建主题,java,spring,jms,Java,Spring,Jms,我正在使用Spring开发一个Web应用程序,还有其他几个应用程序受我生成的信息的影响。基本上,他们想知道我管理的数据何时发生了变化。此数据可以通过特定属性进行过滤 由于要“订阅”此信息的应用程序的数量是可变的,因此我考虑实现一个JMS发布者/订阅者模型,在该模型中,我根据filtering a属性创建队列,然后通知对该队列的更改。然后,所有订阅者都将通过其JMS侦听器接收通知 这种情况可能吗?也就是说,我可以在我的SpringWebApp中嵌入JMS队列吗(如何?),我可以动态地创建这些队列吗

我正在使用Spring开发一个Web应用程序,还有其他几个应用程序受我生成的信息的影响。基本上,他们想知道我管理的数据何时发生了变化。此数据可以通过特定属性进行过滤

由于要“订阅”此信息的应用程序的数量是可变的,因此我考虑实现一个JMS发布者/订阅者模型,在该模型中,我根据filtering a属性创建队列,然后通知对该队列的更改。然后,所有订阅者都将通过其JMS侦听器接收通知

这种情况可能吗?也就是说,我可以在我的SpringWebApp中嵌入JMS队列吗(如何?),我可以动态地创建这些队列吗(即,我为我的a目录创建队列,然后如果一个新元素被添加到该目录中,那么应该在没有人干预的情况下动态地创建一个新队列)。或者有没有更好的解决方案来创建此过滤功能?

您可以使用选择器(按属性A)而不是创建队列:

有关动态队列,请参见


如果我没有弄错的话,在代码中使用的任何环境中,在服务器计算机上创建一组固定的队列时,您都不能根据需要创建动态队列。这是上述设计的一个缺点,那么您将如何实现这些功能?有没有一种方法可以在单个JMS队列中过滤消息?这似乎是我正在寻找的完美解决方案,我不知道选择器的存在。此文件环是否应用于服务器端(即代理不发送不符合选择器标准的消息)或客户端(侦听器接收所有消息,然后过滤不符合选择器标准的消息)?是的,因此,在创建监听器后无法更改此类选择器。很抱歉,我不理解您对我的问题的回答。此筛选应用于代理端,因此您必须在创建监听器时指定选择器。如果您想在运行时更改选择器,则必须创建另一个侦听器。对,但这是使用应用程序的问题;)无论如何,他们应该能够在运行时重新创建侦听器,不是吗?i、 他们可以创建一个工厂并动态地注册/注销bean,而不是定义一个bean