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);
}