首页 > 解决方案 > 为什么使用 Apache Camel rest DSL 而不是 spring boot rest 控制器?

问题描述

刚刚搜了很多camel的话题,很多都提到Camel提供了rest api支持,不知道为什么会提供?因为它可以集成很多框架,比如spring,springmvc/springboot也提供了rest能力。

作为骆驼的初学者,我的第一个问题是:apache骆驼休息的好处/好处是什么?为什么使用骆驼休息路线api而不是springboot restcontroller?至少,您可以看到 springboot rest 控制器可以为 restful api 提供明确的设计/实现、可读的注释并与 spring 验证、swagger UI 等很好地集成。

我的另一个问题,如果需要使用 apache camel,我们可以使用 spring rest 控制器作为 rest api 并使用骆驼作为其他部分吗?还是不建议以这种方式做事?

标签: javaspringspring-bootrestapache-camel

解决方案


嗯,Camel 是一个可以在很多环境中使用的集成库。它可以独立使用,与 Spring 框架、Apache Karaf 等一起使用。所以这是第一点:

在没有 Spring 的情况下使用 Camel 时,Spring 具有出色的 REST 支持毫无价值。

Camel 以其 200 多个组件而著称。它主要支持外面使用的所有东西(协议、数据格式等),并将大部分烦人的传输级代码从你身上抽象出来。您只需使用 DSL 在不同类型的端点之间构建集成。

rest("/orders")
    .post()
    .to("activemq:queue:myQueue")

这是一个 3 行 Camel 集成,它接收来自客户端的 REST 调用 (POST) 并将接收到的数据发送到 JMS 消息队列。在这里,我们得到了第二点:

即使 Spring 可用,Camel 也必须在 Camel DSL 中提供 REST 支持,以允许 REST 与其他端点集成

是的,您当然可以使用 Spring Framework 构建 REST 服务,然后从 Camel Route 调用此 REST 服务。但不可能的是,将此 Spring REST 服务用作骆驼路线的消费者(上面的 3 行示例)。


推荐阅读