6.4. Camel Spring Boot スターターの使用
Apache Camel では、Spring Boot アプリケーションをすぐに開発できるようにするスターターモジュールが提供されます。
手順
以下の依存関係を Spring Boot の pom.xml に追加します。
<dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-spring-boot-starter</artifactId> </dependency>
以下のスニペットのように、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"); } }
任意手順: Camel の稼働を維持するためにメインスレッドがブロックされた状態を維持するには、以下の 1 つを行います。
-
spring-boot-starter-web
関係が含まれるようにします。 または、
camel.springboot.main-run-controller=true
をapplication.properties
またはapplication.yml
ファイルに追加します。application.properties
またはapplication.yml
ファイルでcamel.springboot.* properties
を使用すると Camel アプリケーションをカスタマイズできます。
-
任意手順: Bean の ID 名を使用してカスタム Bean を参照するには、
src/main/resources/application.properties
またはapplication.yml
ファイルのオプションを設定します。以下の例は、Bean ID を使用して xslt コンポーネントがカスタム Bean を参照する方法を示しています。ID
myExtensionFactory
でカスタム Bean を参照します。camel.component.xslt.saxon-extension-functions=myExtensionFactory
次に、Spring Boot の @Bean アノテーションを使用してカスタム Bean を作成します。
@Bean(name = "myExtensionFactory") public ExtensionFunctionDefinition myExtensionFactory() { }
または、Jackson ObjectMapper の場合は、
camel-jackson
データ形式を以下のようにします。camel.dataformat.json-jackson.object-mapper=myJacksonMapper