60.2. 自动探测 Camel 路由
Camel CDI 会自动收集应用程序中的所有 RoutesBuilder
Bean,在 CDI 容器初始化时实例化它们并将其添加到 CamelContext
bean 实例中。例如,添加 Camel 路由就像声明类一样简单,例如:
class MyRouteBean extends RouteBuilder { @Override public void configure() { from("jms:invoices").to("file:/invoices"); } }
请注意,您可以根据需要声明任意数量的 RoutesBuilder
Bean。此外,RouteContainer
Bean 也会自动收集、实例化并添加到由 Camel CDI 管理的 CamelContext
bean 实例(容器初始化时)。
从 Camel 2.19 开始提供
在某些情况下,可能需要禁用 RouteBuilder
和 RouteContainer
beans 的自动配置。这可以通过观察 CdiCamelConfiguration
事件来实现,例如:
static void configuration(@Observes CdiCamelConfiguration configuration) { configuration.autoConfigureRoutes(false); }
同样,可以停用配置的 CamelContext
Bean 的自动启动,例如:
static void configuration(@Observes CdiCamelConfiguration configuration) { configuration.autoStartContexts(false); }