FGr*_*reg 1 java spring spring-integration spring-jms
根据JMS命名空间标记的Spring文档(即<jms:listener-container>),元素没有id属性<jms:listener-container>.
如果没有id,那么如何从其他bean定义中引用监听器容器bean ?
例如,假设我定义了以下Listener容器:
<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>
Run Code Online (Sandbox Code Playgroud)
我想定义一个使用上述容器的入站网关.我将使用什么作为container入站网关定义的属性?
例:
<int-jms:inbound-gateway
request-channel="inboundChannel"
id="messageChannelAdapter"
container="**What Goes Here?**"
reply-channel="outboundChannel" />
Run Code Online (Sandbox Code Playgroud)
或者我误解了监听器容器和网关之间的关系?
该listener-container元素不用于配置独立的JMS侦听器容器.它旨在作为所有封闭listener标签的蓝图.在运行时,实际发生的是为每个封闭构造的JMS侦听器容器listener.所以没有一个容器而是多个容器.
正如@artembilan所提到的,容器的id被设置为监听器的id.但是,当您重复使用侦听器进行spring集成时,它会使侦听器无效.侦听器容器只能连接一个MessageListener,而不能连接多个.
如果要为Spring Integration网关使用侦听器容器,则必须使用其中一个*MessageListenerContainer类自己构造一个.
| 归档时间: |
|
| 查看次数: |
1692 次 |
| 最近记录: |