Apache Camel XML 配置规则和限制

Apache Camel XML configuration rules and restrictions

我正在学习 Camel 并尝试将其与 Spring 引导应用程序集成。根据我的阅读,似乎有两种配置 Camel 路由(和其他相关实体)的主要方法:1)通过 Java DSL,或 2)通过 XML DSL。我们认为 Java DSL 方法对我们不起作用,因为它似乎不允许动态路由定义。也许我错了?如果动态路由可以使用 Java DSL 和其他任何方式以某种方式完成,我想知道它。

所以,我专注于配置 XML 中的路由,我们应该在这方面有更多的灵活性。这个想法是给定的应用程序(或服务)可以在部署时传递一个构造的 XML 路由配置,该配置将指定该服务路由的详细信息。

我的第一个问题是我们如何向 Camel(或 Spring Boot and Camel)what/where 指示配置文件是?它需要特定的文件命名 and/or 项目位置,还是更灵活?可以拆分成单独的文件吗?

顺便说一下,我们通过组合使用基于 Java 的 bean 配置和 application.yml 文件来配置我们的 Spring 启动应用程序。我们不使用 XML 作为 Spring 引导配置。

我在 Camel 站点 (https://camel.apache.org/) 的许多地方四处寻找,但没有找到关于这个主题的太多信息。强调肯定有利于 Java DSL 方法。

有一个 spring 使用 XML DSL 的启动示例 https://github.com/apache/camel-spring-boot/tree/master/examples/camel-example-spring-boot-xml

您可以在您的 Camel 路由中使用 属性 占位符,这些占位符可以通过 spring 引导配置(例如 application.properties 等)进行配置。

从 Camel pov,然后 XML 或 Java 可以同样动态。您可以在运行时 remove/add 路由。但是请注意,在不知道更改是否有效的情况下在生产中进行动态更改并不总是一件好事。