Java 使用Spring';时侦听器容器的id是什么;什么是JMS名称空间?
根据JMS名称空间标记的属性(即Java 使用Spring';时侦听器容器的id是什么;什么是JMS名称空间?,java,spring,spring-integration,spring-jms,Java,Spring,Spring Integration,Spring Jms,根据JMS名称空间标记的属性(即),元素没有id属性 如果侦听器容器bean没有id,如何从其他bean定义中引用它 例如,假设已定义以下侦听器容器: <jms:listener-container acknowledge="auto" connection-factory="queueConnectionFactoryBean" container-type="default" destination-resolver="jndiDestinationResolv
),元素没有id
属性
如果侦听器容器bean没有id
,如何从其他bean定义中引用它
例如,假设已定义以下侦听器容器:
<jms:listener-container acknowledge="auto"
connection-factory="queueConnectionFactoryBean"
container-type="default"
destination-resolver="jndiDestinationResolver"
destination-type="queue"
message-converter="myConverter">
<jms:listener ref="myListenerPOJO" id="myQueueListener"
method="processThePOJO" destination="${myQueueListener.queue.jndiName}" />
</jms:listener-container>
还是我误解了侦听器容器和网关之间的关系?侦听器容器元素不用于配置独立的JMS侦听器容器。它是用来作为所有封闭的
listener
标记的蓝图。在运行时,实际发生的是为每个封闭的侦听器构建一个JMS侦听器容器。因此,不是单个容器而是多个容器
正如@artembilan提到的,容器的id被设置为侦听器的id。然而,当您将侦听器重新用于spring集成时,它将使侦听器变得无用。侦听器容器只能连接一个MessageListener,不能连接多个MessageListener
如果您想为Spring集成网关使用侦听器容器,您必须使用*MessageListenerContainer
类之一自行构建一个侦听器容器。侦听器容器元素并不用于配置独立的JMS侦听器容器。它是用来作为所有封闭的listener
标记的蓝图。在运行时,实际发生的是为每个封闭的侦听器构建一个JMS侦听器容器。因此,不是单个容器而是多个容器
正如@artembilan提到的,容器的id被设置为侦听器的id。然而,当您将侦听器重新用于spring集成时,它将使侦听器变得无用。侦听器容器只能连接一个MessageListener,不能连接多个MessageListener
如果您想为Spring集成网关使用侦听器容器,您必须使用*MessageListenerContainer
类之一自己构建一个侦听器容器。正如Marten所说,侦听器容器为每个侦听器
子元素使用MessageListenerContainer
bean。目标MessageListenerContainer
从侦听器的id
获取id
,这有什么神奇之处呢
因此,在您的例子中,
的容器
应该应用值myQueueListener,正如Marten所说,侦听器容器
为每个侦听器
子元素生成MessageListenerContainer
bean。目标MessageListenerContainer
从侦听器的id
获取id
,这有什么神奇之处呢
因此,在您的情况下,
的容器
应该应用值myQueueListener,谢谢您将其清除。我想如果你能在@Artem Bilan中加入关于容器id=侦听器id的内容,我可以将其标记为答案。谢谢你,这就澄清了问题。我想如果你可以在@Artem Bilan中添加关于容器id=侦听器id的位,我可以将其标记为答案。尽管你可以尝试,但这会禁用侦听器(至少应该是这样)。MessageListenerContainer只能为一个监听器服务,不能为多个监听器服务。下面是一段源代码,它是如何实现的:尽管您可以尝试这样做,但这将禁用监听器(至少它应该这样做)。MessageListenerContainer只能服务于一个侦听器,而不能服务于多个侦听器。以下是它的源代码:
<int-jms:inbound-gateway
request-channel="inboundChannel"
id="messageChannelAdapter"
container="**What Goes Here?**"
reply-channel="outboundChannel" />