37.2. Fluent Producer 템플릿 사용

37.2.1. Camel 2.18로 사용 가능

FluentProducerTemplate 인터페이스는 생산자를 구축하기 위한 fluent 구문을 제공합니다. 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 생산자 템플릿을 사용자 지정하는 방법을 보여줍니다.

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