camel系列-EndpointRouteBuilder
概念
EndpointRouteBuilder 与 RouteBuilder 同样是一个路由构建器,它允许使用类型安全的端点URL配置。
注意点:其只适用于 Java DSL
DSL 示例
RouteBuilder DSL
基于 RouteBuilder 构建路由,ftp 的路由构建需要很多 url 组成,缺点是容易出错,且 url 长度过长
1 | public class MyRoutes extends RouteBuilder { |
EndpointRouteBuilder DSL
其有以下 2 个特点
- 类型安全,明确路由参数的所有特性均以指定方法实现,而非 url 参数,有点类似猜盲盒的感觉
- 以链式方法设置路由属性完成路由构建
1 | public class MyRoutes extends EndpointRouteBuilder { |
在路由构建器之外使用 ENDPOINT-DSL
- 使用 resolve 方法构建 Endpoint
1 | Endpoint mqtt = paho("sensor").clientId("myClient").userName("scott").password("tiger") |
- 使用 FluentProducerTemplate 发送消息到 EndpointProducerResolver,EndpointProducerResolver 可以将路由构建器的参数转换成一个 Endpoint
1 | public interface EndpointProducerResolver { |
每一个路由构建器都实现了 EndpointProducerResolver 接口,所以可以使用路由构建器充当路由的 Endpoint
1 | import static org.apache.camel.builder.endpoint.StaticEndpointBuilders.kafka; |