Apache camel 如何使用自动配置的ProducerTemplate获取多个不同的ProducerTemplate实例?

Apache camel 如何使用自动配置的ProducerTemplate获取多个不同的ProducerTemplate实例?,apache-camel,Apache Camel,如何使用自动配置的生产者模板获取多个不同的ProducerTemplate实例?如果使用自动配置的ProducerTemplate,如何获得多个不同的ProducerTemplate实例 例如,我需要使用producertemplate将不同的交换发送到不同的端点。在这种情况下,我是否需要不同的生产者模板实例?如果是,我该怎么做 自动配置的消费者和生产者模板 驼峰自动配置提供预配置的ConsumerTemplate和ProducerTemplate实例。您可以简单地将它们注入到Spring托管b

如何使用自动配置的生产者模板获取多个不同的
ProducerTemplate
实例?如果使用自动配置的
ProducerTemplate
,如何获得多个不同的
ProducerTemplate
实例

例如,我需要使用
producertemplate
将不同的交换发送到不同的端点。在这种情况下,我是否需要不同的生产者模板实例?如果是,我该怎么做

自动配置的消费者和生产者模板
驼峰自动配置提供预配置的ConsumerTemplate和ProducerTemplate实例。您可以简单地将它们注入到Spring托管bean中:


您不需要使用不同的
ProducerTemplate
s将消息发送到不同的端点。但是,它可以很方便

向任何端点发送消息

使用的
send*
(InOnly)和
request*
(InOut)方法将目标端点URI作为第一个参数

template.sendBody("activemq:MyQueue", "<hello>world!</hello>");
template.requestBody("direct:MyEndpoint", "<hello>world!</hello>");
自动连线多产品模板(弹簧)

由于需要相同类型的多个实例,因此必须使用
@Qualifier
注释按名称注入它们。在Springbean配置中配置默认端点会更好,我刚刚添加了
setDefaultEndpointUri
调用来演示如何操作

@Autowired
@Qualifier("myQueueProducer")
protected ProducerTemplate myQueueProducer;
@Autowired
@Qualifier("myEndpointProducer")
protected ProducerTemplate myEndpointProducer;
...
myQueueProducer.setDefaultEndpointUri("activemq:MyQueue")
myEndpointProducer.setDefaultEndpointUri("direct:MyEndpoint")

您不需要使用不同的
ProducerTemplate
s将消息发送到不同的端点。但是,它可以很方便

向任何端点发送消息

使用的
send*
(InOnly)和
request*
(InOut)方法将目标端点URI作为第一个参数

template.sendBody("activemq:MyQueue", "<hello>world!</hello>");
template.requestBody("direct:MyEndpoint", "<hello>world!</hello>");
自动连线多产品模板(弹簧)

由于需要相同类型的多个实例,因此必须使用
@Qualifier
注释按名称注入它们。在Springbean配置中配置默认端点会更好,我刚刚添加了
setDefaultEndpointUri
调用来演示如何操作

@Autowired
@Qualifier("myQueueProducer")
protected ProducerTemplate myQueueProducer;
@Autowired
@Qualifier("myEndpointProducer")
protected ProducerTemplate myEndpointProducer;
...
myQueueProducer.setDefaultEndpointUri("activemq:MyQueue")
myEndpointProducer.setDefaultEndpointUri("direct:MyEndpoint")