250.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}}");
}
}
greeting フィールドに @PropertyInject アノテーションが付けられ、キー "hello" を使用するように定義されていることに注意してください。Camel はこのキーでプロパティーを検索し、その値を String 型にインジェクトします。
キーに複数のプレースホルダーやテキストを使用することもできます。以下に例を示します。
@PropertyInject("Hello {{name}} how are you?")
private String greeting;
これにより、"name" キーを持つプレースホルダーが検索されます。
キーが存在しない場合には、デフォルト値を追加することもできます。以下に例を示します。
@PropertyInject(value = "myTimeout", defaultValue = "5000")
private int timeout;