指定 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… {}
请注意,如果两个构建器具有相同的组件 id,则框架将抛出错误。Spring 初始化将在 MethodServer 启动阶段失败。如果需要覆盖预设构建器,请使用 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
这对您有帮助吗?