第 3 章 定义 Camel 路由
Quarkus 的 Camel 扩展支持 Java DSL 语言来定义 Camel 路由。
3.1. Java DSL 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
扩展 org.apache.camel.builder.RouteBuilder 并且使用 fluent builder 方法,可用最常用的方法来定义 Camel 路由。以下是使用计时器组件的路由的简单示例:
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。