59.5. 여러 Camel 컨텍스트


위의 설명된 대로 애플리케이션에서 실제로 여러 CamelContext Bean을 선언할 수 있습니다. 이 경우 이러한 CamelContext Beans에 선언된 CDI는 Camel 경로 및 기타 Camel 프리미티브를 해당 Camel 컨텍스트에 바인딩하는 데 사용됩니다. 예를 들어 다음Beans가 선언된 경우 다음을 실행합니다.

@ApplicationScoped
@ContextName("foo")
class FooCamelContext extends DefaultCamelContext {
}

@ApplicationScoped
@BarContextQualifier
class BarCamelContext extends DefaultCamelContext {
}
 
@ContextName("foo")
class RouteAddedToFooCamelContext extends RouteBuilder {

    @Override
    public void configure() {
        // ...
    }
}
 
@BarContextQualifier
class RouteAddedToBarCamelContext extends RouteBuilder {

    @Override
    public void configure() {
        // ...
    }
}
 
@ContextName("baz")
class RouteAddedToBazCamelContext extends RouteBuilder {

    @Override
    public void configure() {
        // ...
    }
}
 
@MyOtherQualifier
class RouteNotAddedToAnyCamelContext extends RouteBuilder {

    @Override
    public void configure() {
        // ...
    }
}
Copy to Clipboard Toggle word wrap

@ContextName 으로 인증된 RoutesBuilder Beans는 Camel CDI에서 해당 CamelContext Beans에 자동으로 추가됩니다. 이러한 CamelContext Bean이 없는 경우 RouteAddedToBazCamelContext Bean에 대해 자동으로 생성됩니다. 이 문제는 Camel CDI에서 제공하는 @ContextName 에 대해서만 발생합니다. 따라서 사용자 정의 @MyECDHEQualifier 로 인증된 RouteNotAddedToAnyCamelContext Bean은 Camel 컨텍스트에 추가되지 않습니다. 예를 들어 애플리케이션 실행 중에 나중에 추가해야 할 수 있는 Camel 경로에 유용할 수 있습니다.

참고

Camel 버전 2.17.0부터 Camel CDI는 모든 종류의 CamelContextBeans(예: Default CamelContext )을 관리할 수 있습니다. 이전 버전에서는 CdiCamelContext 유형의Beans만 관리할 수 있으므로 확장해야 합니다.

CamelContext Beans에 선언된 CDI도 해당 Camel 프리미티브를 바인딩하는 데 사용됩니다. 예를 들면 다음과 같습니다.

@Inject
@ContextName("foo")
@Uri("direct:inbound")
ProducerTemplate producerTemplate;

@Inject
@ContextName("foo")
@Uri("direct:inbound")
FluentProducerTemplate fluentProducerTemplate;

@Inject
@BarContextQualifier
MockEndpoint outbound; // URI defaults to the member name, i.e. mock:outbound

@Inject
@ContextName("baz")
@Uri("direct:inbound")
Endpoint endpoint;
Copy to Clipboard Toggle word wrap
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat