第 3 章 定义 Camel 路由
红帽构建的 Apache Camel for Quarkus 支持 Java DSL 语言来定义 Camel 路由。
3.1. Java DSL 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
扩展 org.apache.camel.builder.RouteBuilder 并使用 fluent 构建器方法定义 Camel 路由是最常见的方法。以下是使用 timer 组件的路由的简单示例:
import org.apache.camel.builder.RouteBuilder;
public class TimerRoute extends RouteBuilder {
@Override
public void configure() throws Exception {
from("timer:foo?period=1000")
.log("Hello World");
}
}
3.1.1. Endpoint DSL 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
自 Camel 3.0 起,您也可以使用流畅的构建器来定义 Camel 端点。等同于上例:
import org.apache.camel.builder.RouteBuilder;
import static org.apache.camel.builder.endpoint.StaticEndpointBuilders.timer;
public class TimerRoute extends RouteBuilder {
@Override
public void configure() throws Exception {
from(timer("foo").period(1000))
.log("Hello World");
}
}
注意
所有 Camel 组件的构建器方法均可通过 camel-quarkus-core 获得,但您仍需要添加给定组件的扩展作为可正常工作的依赖项。如果上例为 camel-quarkus-timer。