java - 为什么使用 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 并使用骆驼作为其他部分吗?还是不建议以这种方式做事?
解决方案
嗯,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 行示例)。
推荐阅读
- c# - 事件执行顺序来自 System.Timers.Timer 的事件
- package - 为升级后的 ORG 中的任务对象提供权限集
- java - Kotlin/Java 可空性设置
- java - ClassNotFoundException:Java 11 上的 org.apache.tools.ant.util.regexp.Jdk14RegexpRegexp
- python - Pandas:最高效的函数应用方式
- html - React Modal 在 iFrame 中添加额外的空白
- google-bigquery - BigQuery 自动将字符串转换为 int
- netsuite - 如何从交易网络套件 freemarker 高级 pdf/html 中获取项目详细信息
- ios - 在 ios appcelerator 中显示图像
- python - Python 无法正常运行 - 每当我运行 python 时都会打印“Python”