使用Camel XML路由的好理由是什么?

时间:2016-09-12 19:56:21

标签: java xml apache-camel blueprint-osgi

Camel Java DSL提供类型安全,代码完成和对重构的适当支持。它还有助于以一种很好的方式对代码进行模块化和(单元)测试。

对于Camel XML语法,我只看到能够在运行时修改和重新加载路由的优势(例如,通过hawtio)。

显然我在这里真的遗漏了什么 - 那么今天使用Camel XML路由背后的理由是什么?

3 个答案:

答案 0 :(得分:3)

  1. 路线的就地编辑(虽然我不鼓励这样做)
  2. 快速和彻底的一次性路线(例如从测试到qa环境的路由)或非常简单的项目 - 当你有一个像karaf或servicemix这样的容器时。无需启动IDE /编译。只需编写并删除部署文件夹即可。
  3. 非开发人员可能更容易
  4. 这是一个品味和偏好的问题。

答案 1 :(得分:2)

我已经使用了两者,我不得不说java dsl使用起来更容易,更强大。

但最好的方法是将它们结合起来,特别是如果你要部署到像Karaf这样的OSGI环境。

使用蓝图定义bean和routeBuilder bean并绑定它们。实际的实现是在routeBuilder类中完成的。在蓝图中,您可以定义属性并执行其他一些操作,但路径的实际行为是在java中完成的。

答案 2 :(得分:1)

首先,当你说XML时,你的意思是Spring XML DSL还是Blueprint XML DSL?虽然他们分享了大部分语法,但它们并不完全相同。蓝图XML DSL是为OSGi环境(即Apache Karaf运行时)定义Camel路由的首选方式,而Spring XML DSL现在或多或少是您只能通过XML使用Spring的时代的遗产。

话虽如此,我认为这实际上归结为个人偏好 - 许多开发人员仍然更喜欢使用XML而不是Java来定义路由并且更容易阅读和遵循。我本人一直更喜欢Java DSL,因为它更灵活,更强大,但我不得不承认XML提供了更好的路由概述。