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);

以下示例演示了如何在 DefaultFluentProducerTemplate 对象中指定处理器:

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();

要创建 FluentProducerTemplate 实例,请在 Camel 上下文上调用 createFluentProducerTemplate() 方法。例如:

FluentProducerTemplate fluentProducerTemplate = context.createFluentProducerTemplate();