componentid の指定
通常、ビルダーがマッピングするコンポーネント ID は、ビルダークラス宣言で @ComponentBuilder アノテーションを使用して宣言します。
@ComponentBuilder(value = "{<componetId1>, <componetId2>}")
public class MyBuilder extends … {}
コンフィギュレーションビルダーとデータビルダーを別々のクラスに実装する場合、追加の ComponentBuilderType パラメータを @ComponentBuilder アノテーションに指定する必要があります。
コンフィギュレーションビルダーでは、次のように表示されます。
@ComponentBuilder(value="<componetId>", type=ComponentBuilderType.CONFIG_ONLY)
public class MyConfigBuilder implements ComponentConfigBuilder …. {}
データビルダーでは、次のように表示されます。
@ComponentBuilder(value="<componetId>", type=ComponentBuilderType.DATA_ONLY)
public class MyDataBuilder implements ComponentDataBuilder… {}
2 つのビルダーのコンポーネント ID が同じである場合、エラーになります。MethodServer の起動フェーズで Spring の初期化が失敗します。OOTB ビルダーをオーバーライドする必要がある場合は、OverrideComponentBuilder アノテーションを使用してください。
@ComponentBuilder(value="{compId1, compId2, compId3}")
public class OOTBBuilder1 extends …… {
}
@OverrideComponentBuilder
public class MyCustomBuilder1 extends …… {
}
• MyCustomBuilder1 は compId1、compId2、compId3 にマッピングされます。
@ComponentBuilder(value="{compIdA, compIdB, compIdC}")
public class OOTBBuilder2 extends ……{
}
@ComponentBuilder(value="{compIdA, compIdC}")
@OverrideComponentBuilder
public class MyCustomBuilder2 extends ……{
}
@ComponentBuilder(value="{compIdB}")
@OverrideComponentBuilder
public class MyCustomBuilder3 extends ……{
}
• MyCustomBuilder2 は compIdA、compIdC にマッピングされます。
• MyCustomBuilder3 は compIdB にマッピングされます。