Camel Java DSL提供类型安全,代码完成和对重构的适当支持。它还有助于以一种很好的方式对代码进行模块化和(单元)测试。
对于Camel XML语法,我只看到能够在运行时修改和重新加载路由的优势(例如,通过hawtio
)。
显然我在这里真的遗漏了什么 - 那么今天使用Camel XML路由背后的理由是什么?
答案 0 :(得分:3)
这是一个品味和偏好的问题。
答案 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提供了更好的路由概述。