在 Apache Camel 中 Java DSL 相对于 Spring DSL 有什么优势?

What are the advantages of Java DSL over Spring DSL in Apache Camel?

我知道我们可以使用 Java DSL 和 Spring DSL 在 camel 上下文中处理路由。 谁能告诉我哪个效率更高?两者的优势是什么?

我个人更喜欢 java dsl,因为 IDE 完成对 DSL 有很好的帮助。当您进行重构时,Java DSL 也能很好地遵循。

我经常结合使用 spring 上下文和 Java DSL。

您可以使用 java dsl 进行实际的 Camel 开发,并使用 spring 或蓝图进行路由设置或 bean 配置,或者将 Camel 桥接到 spring 或 Karaf。

就个人而言,借助一些配置管理平台(如 disconf,https://github.com/knightliao/disconf)和一些预先定义的规则,我可以动态更改骆驼路线(添加或删除),而无需更改 java 代码,或 xml.

使用spring xml 来做这个会稍微复杂一些。但是使用dsl,我只需要将configs放在不同的if/else,由configs切换。