目前我尝试深入了解Apache Camel。如您所知,至少有两种方法来描述路由:Java DSL和XML配置。
Camel的开发人员建议使用Java DSL,因为它具有更好地集成到IDE中的好处。另一个好处是,您可以使用自己的代码丰富Java DSL,而无需编写复杂的类结构。如果采用XML配置,这似乎是必要的。
您认为xml文件中定义的路由的优缺点是什么?何时使用xml-files定义路由以及何时使用Java DSL?
答案 0 :(得分:6)
这取决于您的要求,但几乎在所有情况下,我更喜欢Java DSL,原因如下:
答案 1 :(得分:5)
如果您使用Java DSL,您可以利用IDE的重构工具并编译时间检查。
另一方面,如果您使用xml文件,则可以外部化整个camel路由并重新路由,而无需重新部署应用程序。
答案 2 :(得分:2)
如果你开始使用spring,你很可能会遇到需要实现处理器或其他问题的程度。您需要在某些时候使用自定义代码。 在此之后,你的代码中混合了java和xml - 维护恐怖。
在这个java旁边是:
为了充分利用它,我还建议最小化带字符串的端点配置。因此,不要以这种方式创建和配置端点:
from("file:/someFolder?delete=true")
我建议分别创建/配置端点:
Endpoint fileEndpoint= context.getEndpoint("file:" + folder.getPath(), FileEndpoint.class);
fileEndpoint.setDelete(true);
这比摆弄字符串更容易出错。