对于amqp出站通道适配器,amqp-template是如何可选的

时间:2015-02-20 17:08:24

标签: spring-integration spring-amqp

当我查看有关Spring集成的出站通道适配器的文档时,我发现amqp-template是一个可选字段。我还注意到交换名称和路由键都出现在Rabbit Template和出站通道适配器上。

如果我没有提供amqp-template,那么适配器将用于连接工厂。

如果我在兔子模板中指定了1组属性而在出站通道适配器中指定了另一组属性,然后为出站通道适配器提供了兔子模板,将使用哪些属性? (不是我会这样做,我只是好奇哪个组件的属性被用于其他组件)

1 个答案:

答案 0 :(得分:0)

  

如果我没有提供amqp-template,那么适配器将用于连接工厂。

它需要来自具有bean名称amqpTemplateAmqpOutboundChannelAdapterParser)的上下文中的一个:

String amqpTemplateRef = element.getAttribute("amqp-template");
if (!StringUtils.hasText(amqpTemplateRef)) {
    amqpTemplateRef = "amqpTemplate";

exchangeroutingKey等属性用于每个messageAmqpOutboundEndpoint):

this.amqpTemplate.convertAndSend(exchangeName, routingKey, requestMessage.getPayload(),

ConfirmCallbackReturnCallback配置AmqpTemplateAmqpOutboundEndpoint。但是在这种情况下,您不能使用共享bean,必须提供单独的bean。

必须在该bean定义上提供所有其他RabbitTemplate特定选项。 <int-amqp:outbound-channel-adapter>没有它们。