在spring xml中定义Camel路由有什么优点和缺点?

发布于 2024-11-29 18:24:28 字数 247 浏览 0 评论 0原文

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

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

您认为 xml 文件中定义的路由有哪些优点和缺点?何时使用 xml 文件定义路由以及何时使用 Java DSL?

Currently I try to get deeper into Apache Camel. As you know there are at least two ways to describe the routes: the Java DSL and the XML-configuration.

The developers of Camel recommend to use the Java DSL because i.e. it has the benefit that it better integrates into the IDE. Another benefit is, that you can enrich the Java DSL with your own code without writing complex class structures. This seems necessary if XML-configuration is taken.

What do you think are the advantages and disadvantages of routes defined in an xml-file? When to use xml-files for definition of routes and when to use Java DSL?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

那一片橙海, 2024-12-06 18:24:28

这在一定程度上取决于您的要求,但几乎在每种情况下,我更喜欢 Java DSL,原因如下:

  • 比 XML 更高效、更灵活
  • XML/Java 文件之间的翻转更少
  • 更易于可视化、管理、维护, 调试测试(通过mock 等)
  • 对内联 处理器
  • 与 IDE 更好地集成(代码完成和验证)
  • 更干净,更易于遵循 示例

It depends on your requirements a bit, but in almost every case, I prefer the Java DSL for the following reasons:

  • more efficient and flexible than XML
  • less flipping between XML/Java files
  • easier to visualize, manage, maintain, debug, test (via mock, etc.)
  • support for inline Processors
  • better integration with IDE (code completion and validation)
  • cleaner, easier to follow examples
呆头 2024-12-06 18:24:28

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

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

If you use the Java DSL you can leverage your IDE's refactoring tools and compile time checks.

On the other hand if you use xml files you can externalize the entire camel routing and re-route stuff without redeploying the application.

暖阳 2024-12-06 18:24:28

如果您开始使用 spring,您很可能会需要实现处理器或其他东西。您有时会需要自定义代码。
此后,您的代码中将混合使用 java 和 xml - 维护令人恐惧。

除了这个java之外,还有:

  • 类型安全
  • 编译

以充分利用它,我还建议尽量减少使用字符串的端点配置。因此,不要以这种方式创建和配置端点:

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

我建议单独创建/配置端点:

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

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

If you start using spring you will most likely come to a point where you need to implement an Processor or something else. You will need custom code at some point.
After this you have a mix of java and xml in your code - maintenance horror.

beside this java is:

  • type safe
  • compiled

to get the most out of it i would also suggest to minimize configuration of endpoints with strings. So instead of creating and configuring endpoints this way:

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

i suggest do create/configure the endpoint separately:

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

This is less error prone than fiddling around strings.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文