59.14. 게으름 / 프로그래밍 방식 조회


CDI 프로그래밍 모델의 경우 애플리케이션 초기화 시 발생하는 안전한 유형 확인 메커니즘을 선호하지만, 프로그래밍 방식의 조회 메커니즘을 사용하여 애플리케이션을 실행하는 동안 나중에 동적 / 지연 주입을 수행할 수 있습니다.

Camel CDI는 Camel 프리미티브의 표준 주입에 사용할 수 있는 CDI에 해당하는 주석 리터럴을 편리하게 제공합니다. 이러한 주석 리터럴은 lazy injection / programmatic lookup을 수행하기 위해 CDI 진입점인 javax.enterprise.inject.Instance 인터페이스와 함께 사용할 수 있습니다.

예를 들어, @Uri 의 제공된 주석 리터럴을 사용하여 Camel 프리미티브를 지연 조회할 수 있습니다(예: ProducerTemplate 의 경우).

@Any
@Inject
Instance<ProducerTemplate> producers;

ProducerTemplate inbound = producers
    .select(Uri.Literal.of("direct:inbound"))
    .get();

또는 Endpoint Beans의 경우 다음과 같습니다.

@Any
@Inject
Instance<Endpoint> endpoints;

MockEndpoint outbound = endpoints
    .select(MockEndpoint.class, Uri.Literal.of("mock:outbound"))
    .get();

마찬가지로 @ContextName 의 제공된 주석 리터럴을 사용하여 CamelContext Beans에 lazily 조회할 수 있습니다. 예를 들면 다음과 같습니다.

@Any
@Inject
Instance<CamelContext> contexts;

CamelContext context = contexts
    .select(ContextName.Literal.of("foo"))
    .get();

Camel 컨텍스트 유형에 따라 선택 사항을 구체화할 수도 있습니다. 예를 들면 다음과 같습니다.

@Any
@Inject
Instance<CamelContext> contexts;

// Refine the selection by type
Instance<DefaultCamelContext> context = contexts.select(DefaultCamelContext.class);

// Check if such a bean exists then retrieve a reference
if (!context.isUnsatisfied())
    context.get();

또는 다음과 같은 다양한 Camel 컨텍스트를 반복합니다.

@Any
@Inject
Instance<CamelContext> contexts;

for (CamelContext context : contexts)
    context.setUseBreadcrumb(true);
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2026 Red Hat
맨 위로 이동