59.2. Camel 경로 자동 감지

Camel CDI는 애플리케이션의 모든 RoutesBuilder 빈을 자동으로 수집하여 CDI 컨테이너를 초기화할 때 CamelContext 빈 인스턴스에 추가합니다. 예를 들어 Camel 경로를 추가하는 것은 다음과 같이 클래스를 선언하는 것만큼 간단합니다.

class MyRouteBean extends RouteBuilder {
 
    @Override
    public void configure() {
        from("jms:invoices").to("file:/invoices");
    }
}

원하는 만큼 RoutesBuilder 빈을 선언할 수 있습니다. 또한 RouteContainer 빈은 컨테이너가 초기화할 때 Camel CDI에서 관리하는 CamelContext 빈 인스턴스에 자동으로 수집, 인스턴스화 및 추가됩니다.

Camel 2.19에서 사용 가능

일부 상황에서는 RouteBuilderRouteContainer 빈의 자동 구성을 비활성화해야 할 수 있습니다. 이는 CdiCamelConfiguration 이벤트를 관찰하여 수행할 수 있습니다. 예를 들면 다음과 같습니다.

static void configuration(@Observes CdiCamelConfiguration configuration) {
    configuration.autoConfigureRoutes(false);
}

마찬가지로 구성된 CamelContext 빈의 자동 시작을 비활성화합니다. 예를 들면 다음과 같습니다.

static void configuration(@Observes CdiCamelConfiguration configuration) {
    configuration.autoStartContexts(false);
}