262.25. Using @PropertyInject

Camel 2.12 以降で利用可能

Camel では、フィールドとセッターメソッドに設定できる @PropertyInject アノテーションを使用して、POJO にプロパティープレースホルダーを挿入できます。

たとえば、以下に示すように RouteBuilder クラスで使用できます。

public class MyRouteBuilder extends RouteBuilder {

    @PropertyInject("hello")
    private String greeting;

    @Override
    public void configure() throws Exception {
        from("direct:start")
            .transform().constant(greeting)
            .to("{{result}}");
    }

}

グリーティングフィールドに @PropertyInject でアノテーションを付け、キー "hello" を使用するように定義していることに注意してください。Camel はこのキーを使用してプロパティーを検索し、その値を String 型に変換して注入します。

キーで複数のプレースホルダーとテキストを使用することもできます。たとえば、次のことができます。

@PropertyInject("Hello {{name}} how are you?")
private String greeting;

これにより、キー "name" でプレースホルダーが検索されます。

キーが存在しない場合は、次のようにデフォルト値を追加することもできます。

@PropertyInject(value = "myTimeout", defaultValue = "5000")
private int timeout;