为什么使用 Apache Camel rest DSL 而不是 spring boot rest controller?
Why using Apache Camel rest DSL rather than spring boot rest controller?
我刚刚搜索了很多camel的话题,很多都提到Camel提供了其余的api支持,但我不知道它为什么提供?因为它可以集成很多框架,例如spring,springmvc/springboot也提供休息的能力。
作为 camel 的初学者,我的第一个问题就是:apache camel 的休息优势/优点是什么?为什么使用骆驼休息路线 api 而不是 springboot restcontroller ?至少,你可以看到 springboot rest controller 可以为 restful api 提供明确的 design/implementations,可读的注释并与 spring 验证很好地集成,swagger UI 等
我的另一个问题,如果需要使用 apache camel,我们可以使用 spring rest controller 来休息 api 而 camel 用于其他部分吗?或者不建议这样做?
好吧,Camel 是一个可以在许多环境中使用的集成库。它可以独立使用,使用 Spring 框架,在 Apache Karaf 等中。所以这是第一点:
When Camel is used without Spring, it is worth nothing that Spring has excellent REST support.
Camel 以其 200 多个组件而出类拔萃。它主要支持在那里使用的所有东西(协议、数据格式等),它从你那里抽象出大部分烦人的传输层代码。您只需使用 DSL 在不同类型的端点之间构建集成。
rest("/orders")
.post()
.to("activemq:queue:myQueue")
这是一个 3 行 Camel 集成,它从客户端 (POST) 接收 REST 调用并将接收到的数据发送到 JMS 消息队列。这里我们得到了第二点:
Even if Spring is available, Camel must provide REST support in the Camel DSL to allow REST integrations with other endpoints
是的,您当然可以使用 Spring 框架构建 REST 服务,然后从 Camel Route 调用此 REST 服务。但是不可能的是,将此 Spring REST 服务用作 Camel 路由的消费者(上面的 3 行示例)。
Burki 的反应很棒。在我看来,确实值得加两点。
如果您喜欢 Spring 让您实现服务的方式,您仍然可以从两个世界中获益,并通过使用以下方式将 @RestController
与您的骆驼路线集成FluentProducerTemplate
.
如果您从一开始就使用 Camel 构建服务,包括 Rest DSL,您可以从应用程序的最早阶段利用 Camel 的错误处理实现(非常棒,恕我直言)
通常情况下,使用 Camel 不仅仅是减少代码行数的问题。 Camel 为您带来了完整的轻量级框架的强大功能,超过 280 个组件、类型和数据格式转换器,更不用说 EIP,因此 REST DSL 可以被视为前门:)
我刚刚搜索了很多camel的话题,很多都提到Camel提供了其余的api支持,但我不知道它为什么提供?因为它可以集成很多框架,例如spring,springmvc/springboot也提供休息的能力。
作为 camel 的初学者,我的第一个问题就是:apache camel 的休息优势/优点是什么?为什么使用骆驼休息路线 api 而不是 springboot restcontroller ?至少,你可以看到 springboot rest controller 可以为 restful api 提供明确的 design/implementations,可读的注释并与 spring 验证很好地集成,swagger UI 等
我的另一个问题,如果需要使用 apache camel,我们可以使用 spring rest controller 来休息 api 而 camel 用于其他部分吗?或者不建议这样做?
好吧,Camel 是一个可以在许多环境中使用的集成库。它可以独立使用,使用 Spring 框架,在 Apache Karaf 等中。所以这是第一点:
When Camel is used without Spring, it is worth nothing that Spring has excellent REST support.
Camel 以其 200 多个组件而出类拔萃。它主要支持在那里使用的所有东西(协议、数据格式等),它从你那里抽象出大部分烦人的传输层代码。您只需使用 DSL 在不同类型的端点之间构建集成。
rest("/orders")
.post()
.to("activemq:queue:myQueue")
这是一个 3 行 Camel 集成,它从客户端 (POST) 接收 REST 调用并将接收到的数据发送到 JMS 消息队列。这里我们得到了第二点:
Even if Spring is available, Camel must provide REST support in the Camel DSL to allow REST integrations with other endpoints
是的,您当然可以使用 Spring 框架构建 REST 服务,然后从 Camel Route 调用此 REST 服务。但是不可能的是,将此 Spring REST 服务用作 Camel 路由的消费者(上面的 3 行示例)。
Burki 的反应很棒。在我看来,确实值得加两点。
如果您喜欢 Spring 让您实现服务的方式,您仍然可以从两个世界中获益,并通过使用以下方式将
@RestController
与您的骆驼路线集成FluentProducerTemplate
.如果您从一开始就使用 Camel 构建服务,包括 Rest DSL,您可以从应用程序的最早阶段利用 Camel 的错误处理实现(非常棒,恕我直言)
通常情况下,使用 Camel 不仅仅是减少代码行数的问题。 Camel 为您带来了完整的轻量级框架的强大功能,超过 280 个组件、类型和数据格式转换器,更不用说 EIP,因此 REST DSL 可以被视为前门:)