6.4. Camel Spring Boot スターターの使用

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 つを行います。

    1. spring-boot-starter-web 関係が含まれるようにします。
    2. または、camel.springboot.main-run-controller=trueapplication.properties または application.yml ファイルに追加します。

      application.properties または application.yml ファイルで camel.springboot.* properties を使用すると Camel アプリケーションをカスタマイズできます。

  4. 任意手順:Bean の ID 名を使用してカスタム Bean を参照するには、src/main/resources/application.properties または application.yml ファイルのオプションを設定します。以下の例は、Bean ID を使用して xslt コンポーネントがカスタム 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 データ形式を以下のようにします。

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