【问题标题】:Apache Camel XML configuration rules and restrictionsApache Camel XML 配置规则和限制
【发布时间】:2020-03-20 19:02:46
【问题描述】:

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

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

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

顺便说一下,我们通过结合基于 Java 的 bean 配置和 application.yml 文件来配置 Spring Boot 应用程序。我们不使用 XML 进行 Spring Boot 配置。

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

【问题讨论】:

    标签: java xml spring-boot apache-camel


    【解决方案1】:

    有一个带有 XML DSL 的 Spring Boot 示例,位于 https://github.com/apache/camel-spring-boot/tree/master/examples/camel-example-spring-boot-xml

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

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

    【讨论】:

    • 感谢您提供此信息。我认为我最了解的简单项目。您提到 XML 和 Java 配置可以同样是动态的。我不明白这在 Java 方面是如何工作的。
    • 我很好奇我读过的一段似乎表明了另一种方法。它使用不同的 XML 模式 (http://camel.apache.org/schema/spring)。这需要一个带有子 <route> 元素的 <routes> 元素。这是什么表格,在哪里/如何使用?顺便说一句,此文件需要位于 camel 目录中。我把它放在src/main/resources 下。
    • 上面的链接好像已经过时了,我想这可能会有所帮助github.com/apache/camel-spring-boot-examples/tree/main/xml
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多