在spring xml中定义Camel路由有哪些优缺点?

时间:2011-08-15 12:22:52

标签: java xml spring routes apache-camel

目前我尝试深入了解Apache Camel。如您所知,至少有两种方法来描述路由:Java DSL和XML配置。

Camel的开发人员建议使用Java DSL,因为它具有更好地集成到IDE中的好处。另一个好处是,您可以使用自己的代码丰富Java DSL,而无需编写复杂的类结构。如果采用XML配置,这似乎是必要的。

您认为xml文件中定义的路由的优缺点是什么?何时使用xml-files定义路由以及何时使用Java DSL?

3 个答案:

答案 0 :(得分:6)

这取决于您的要求,但几乎在所有情况下,我更喜欢Java DSL,原因如下:

  • 比XML更高效,更灵活
  • 在XML / Java文件之间减少翻转
  • 更易于查看,管理,维护,debugtest(通过mock等)
  • 支持内联Processors
  • 与IDE更好地集成(代码完成和验证)
  • 更干净,更容易关注examples

答案 1 :(得分:5)

如果您使用Java DSL,您可以利用IDE的重构工具并编译时间检查。

另一方面,如果您使用xml文件,则可以外部化整个camel路由并重新路由,而无需重新部署应用程序。

答案 2 :(得分:2)

如果你开始使用spring,你很可能会遇到需要实现处理器或其他问题的程度。您需要在某些时候使用自定义代码。 在此之后,你的代码中混合了java和xml - 维护恐怖。

在这个java旁边是:

  • type safe
  • 编译

为了充分利用它,我还建议最小化带字符串的端点配置。因此,不要以这种方式创建和配置端点:

from("file:/someFolder?delete=true")

我建议分别创建/配置端点:

Endpoint fileEndpoint= context.getEndpoint("file:" + folder.getPath(), FileEndpoint.class);
fileEndpoint.setDelete(true);

这比摆弄字符串更容易出错。