5장. Camel Quarkus의 CDI(Context and DependencyECDHE)


CDI는 Quarkus 및 Camel Quarkus에서 핵심적인 역할을 수행하며 이를 위한 첫 번째 클래스 지원도 제공합니다.

예를 들어 Camel RouteBuilder 에 빈 및 구성 값을 삽입하기 위해 @Inject,@ConfigProperty 및 유사한 주석을 사용할 수 있습니다. 예를 들면 다음과 같습니다.

import javax.enterprise.context.ApplicationScoped;
import javax.inject.Inject;
import org.apache.camel.builder.RouteBuilder;
import org.eclipse.microprofile.config.inject.ConfigProperty;

@ApplicationScoped 
1

public class TimerRoute extends RouteBuilder {

    @ConfigProperty(name = "timer.period", defaultValue = "1000") 
2

    String period;

    @Inject
    Counter counter;

    @Override
    public void configure() throws Exception {
        fromF("timer:foo?period=%s", period)
                .setBody(exchange -> "Incremented the counter: " + counter.increment())
                .to("log:cdi-example?showExchangePattern=false&showBodyType=false");
    }
}
1
@ApplicationScoped 주석은 @Inject@ConfigPropertyRouteBuilder 에서 작동하는 데 필요합니다. @ApplicationScoped 빈은 CDI 컨테이너에서 관리하며 해당 라이프사이클은 일반 RouteBuilder 중 하나보다 약간 더 복잡합니다. 즉, RouteBuilder 에서 @ApplicationScoped 를 사용하면 부팅 시간 페널티가 있으므로 실제로 필요할 때 @ApplicationScopedRouteBuilder 에 주석을 달 수 있습니다.
2
timer.period 속성의 값은 예제 프로젝트의 gRPC /main/resources/application.properties 에 정의됩니다.
작은 정보

자세한 내용은 QuarkusDependencyECDHE 가이드를 참조하십시오.

5.1. CamelContext액세스

CamelContext 에 액세스하려면 다음 명령을 실행하여 console에 삽입합니다.

import javax.inject.Inject;
import javax.enterprise.context.ApplicationScoped;
import java.util.stream.Collectors;
import java.util.List;
import org.apache.camel.CamelContext;

@ApplicationScoped
public class MyBean {

    @Inject
    CamelContext context;

    public List<String> listRouteIds() {
        return context.getRoutes().stream().map(Route::getId).sorted().collect(Collectors.toList());
    }
}
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 소개

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

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

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

Red Hat 문서 정보

Legal Notice

Theme

© 2026 Red Hat
맨 위로 이동