37.2. 使用 Fluent Producer 模板
由 Camel 2.18 提供
FluentProducerTemplate
界面为构建制作者提供了一个流畅的语法。DefaultFluentProducerTemplate
类实施 FluentProducerTemplate
。
以下示例使用 DefaultFluentProducerTemplate
对象来设置标头和正文:
Integer result = DefaultFluentProducerTemplate.on(context) .withHeader("key-1", "value-1") .withHeader("key-2", "value-2") .withBody("Hello") .to("direct:inout") .request(Integer.class);
Integer result = DefaultFluentProducerTemplate.on(context)
.withHeader("key-1", "value-1")
.withHeader("key-2", "value-2")
.withBody("Hello")
.to("direct:inout")
.request(Integer.class);
以下示例演示了如何在 DefaultFluentProducerTemplate
对象中指定处理器:
Integer result = DefaultFluentProducerTemplate.on(context) .withProcessor(exchange -> exchange.getIn().setBody("Hello World")) .to("direct:exception") .request(Integer.class);
Integer result = DefaultFluentProducerTemplate.on(context)
.withProcessor(exchange -> exchange.getIn().setBody("Hello World"))
.to("direct:exception")
.request(Integer.class);
下一个示例演示了如何自定义默认的 fluent producer 模板:
Object result = DefaultFluentProducerTemplate.on(context) .withTemplateCustomizer( template -> { template.setExecutorService(myExecutor); template.setMaximumCacheSize(10); } ) .withBody("the body") .to("direct:start") .request();
Object result = DefaultFluentProducerTemplate.on(context)
.withTemplateCustomizer(
template -> {
template.setExecutorService(myExecutor);
template.setMaximumCacheSize(10);
}
)
.withBody("the body")
.to("direct:start")
.request();
要创建 FluentProducerTemplate
实例,请在 Camel 上下文上调用 createFluentProducerTemplate()
方法。例如:
FluentProducerTemplate fluentProducerTemplate = context.createFluentProducerTemplate();
FluentProducerTemplate fluentProducerTemplate = context.createFluentProducerTemplate();