4장. 설정


Camel Quarkus는 Quarkus 애플리케이션 라이프사이클에 따라 기본적으로 시작/중지되는 Camel 컨텍스트 빈을 자동으로 구성하고 배포합니다. 구성 단계는 Quarkus의 보강 단계에서 빌드 시 수행되며 Camel Quarkus 특정 quarkus.camel.* 속성을 사용하여 조정할 수 있는 Camel Quarkus 확장에 의해 구동됩니다.

참고

Quarkus.camel.* 구성 속성은 개별 확장 페이지에 문서화되어 있습니다. 예를 들면 Camel Quarkus Core 를 참조하십시오.

구성이 완료되면 RUNTIME_INIT 단계에서 최소한의 Camel 런타임이 어셈블되어 시작됩니다.

4.1. Camel 구성 요소 구성

4.1.1. application.properties

속성을 통해 Apache Camel의 구성 요소 및 기타 측면을 구성하려면 애플리케이션이 camel-quarkus-core 직접 또는 전송에 따라 달라지도록 합니다. 대부분의 Camel Quarkus 확장은 camel-quarkus-core 에 따라 다르기 때문에 일반적으로 명시적으로 추가할 필요가 없습니다.

Camel-quarkus-core 는 Camel Main에서 Camel Quarkus까지 기능을 제공합니다.

아래 예제에서는 LogComponent 에서 application.properties 를 통해 특정 ExchangeFormatter 구성을 설정합니다.

camel.component.log.exchange-formatter = #class:org.apache.camel.support.processor.DefaultExchangeFormatter
camel.component.log.exchange-formatter.show-exchange-pattern = false
camel.component.log.exchange-formatter.show-body-type = false

4.1.2. CDI

CDI를 사용하여 프로그래밍 방식으로 구성 요소를 구성할 수도 있습니다.

권장되는 방법은 ComponentAddEvent 를 관찰하고 경로 및 CamelContext 가 시작되기 전에 구성 요소를 구성하는 것입니다.

import javax.enterprise.context.ApplicationScoped;
import javax.enterprise.event.Observes;
import org.apache.camel.quarkus.core.events.ComponentAddEvent;
import org.apache.camel.component.log.LogComponent;
import org.apache.camel.support.processor.DefaultExchangeFormatter;

@ApplicationScoped
public static class EventHandler {
    public void onComponentAdd(@Observes ComponentAddEvent event) {
        if (event.getComponent() instanceof LogComponent) {
            /* Perform some custom configuration of the component */
            LogComponent logComponent = ((LogComponent) event.getComponent());
            DefaultExchangeFormatter formatter = new DefaultExchangeFormatter();
            formatter.setShowExchangePattern(false);
            formatter.setShowBodyType(false);
            logComponent.setExchangeFormatter(formatter);
        }
    }
}

4.1.2.1. @Named 구성 요소 인스턴스 생성

또는 @Named 생산자 메서드에서 직접 구성 요소를 만들고 구성할 수 있습니다. Camel은 구성 요소 URI 스키마를 사용하여 레지스트리에서 구성 요소를 조회하는 방식으로 작동합니다. 예를 들어 LogComponent Camel의 경우 console이라는 로그를 찾습니다.

주의

@Named 구성 요소를 생성하는 동안 일반적으로 작동하지만 일부 구성 요소에는 미묘한 문제가 발생할 수 있습니다.

Camel Quarkus 확장에서는 다음 중 하나를 수행할 수 있습니다.

  • 기본 Camel 구성 요소 유형의 사용자 지정 하위 유형을 전달합니다. Vert.x WebSocket 확장 예제를 참조하십시오.
  • 구성 요소의 일부 Quarkus별 사용자 지정을 수행합니다. JPA 확장 예제를 참조하십시오.

이러한 작업은 자체 구성 요소 인스턴스를 생성할 때 수행되지 않으므로 관찰자 방법에서 구성 요소를 구성하는 것이 권장되는 방법입니다.

import javax.enterprise.context.ApplicationScoped;
import javax.inject.Named;

import org.apache.camel.component.log.LogComponent;
import org.apache.camel.support.processor.DefaultExchangeFormatter;

@ApplicationScoped
public class Configurations {
    /**
     * Produces a {@link LogComponent} instance with a custom exchange formatter set-up.
     */
    @Named("log") 
1

    LogComponent log() {
        DefaultExchangeFormatter formatter = new DefaultExchangeFormatter();
        formatter.setShowExchangePattern(false);
        formatter.setShowBodyType(false);

        LogComponent component = new LogComponent();
        component.setExchangeFormatter(formatter);

        return component;
    }
}
1
메서드 이름이 동일한 경우 @Named 주석의 "log" 인수를 생략할 수 있습니다.
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 문서 정보

Legal Notice

Theme

© 2026 Red Hat
맨 위로 이동