6.4. 使用 Camel Spring Boot starter

Apache Camel 提供了一个初学者模块,可让您快速开始开发 Spring Boot 应用程序。

流程

  1. 将以下依赖项添加到 Spring Boot pom.xml 文件中:

    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-spring-boot-starter</artifactId>
    </dependency>
  2. 使用 Camel 路由添加类,如下面的代码片段中所示。将这些路由添加到类路径中后,路由会自动启动。

    package com.example;
    
    import org.apache.camel.builder.RouteBuilder;
    import org.springframework.stereotype.Component;
    
    @Component
    public class MyRoute extends RouteBuilder {
    
        @Override
        public void configure() throws Exception {
            from("timer:foo")
              .to("log:bar");
        }
    }
  3. 可选的。要让主线程阻止,以便 Camel 保持工作,请执行以下操作之一:

    1. 包含 spring-boot-starter-web 依赖项,
    2. 或将 camel.springboot.main-run-controller=true 添加到 application.propertiesapplication.yml 文件中。

      您可以使用 camel.springboot mdadm 属性自定义 application.propertiesapplication. yml 文件中的 Camel 应用程序。

  4. 可选的。要使用 bean 的 ID 名称引用自定义 bean,请在 src/main/resources/application.properties (或 application.yml)文件中配置选项。以下示例显示了 xslt 组件如何使用 bean ID 来引用自定义 bean。

    1. 请参阅 id myExtensionFactory 的自定义 bean。

      camel.component.xslt.saxon-extension-functions=myExtensionFactory
    2. 然后,使用 Spring Boot @Bean 注释创建自定义 bean。

      @Bean(name = "myExtensionFactory")
      public ExtensionFunctionDefinition myExtensionFactory() {
          }

      或者,对于 Jackson ObjectMapper,在 camel-jackson data-format 中:

      camel.dataformat.json-jackson.object-mapper=myJacksonMapper