自动连接尚未创建的spring-boot-starter库中的Bean|变形金刚供应商Kafka流

krugob8w  于 2022-12-10  发布在  Spring
关注(0)|答案(1)|浏览(154)

我正在创建一个spring-boot-starter Kafka流库,在其中我定义了一个配置类,它将有一个storeBuilders列表。

class CustomConfiguration {
    private String A;
    private String B;
    private Set<StoreBuilder<?>> transformationStoreBuilders;
    private Set<StoreBuilder<?>> processorStoreBuilders;

    // Constructor and Getter
}

将导入此spring-boot-starter库的客户机必须创建上述配置类的bean。
现在,我正在创建一个自定义TransformerSupplier,并且希望通过从CustomConfiguration自动配置存储来自动设置存储。

public abstract class CustomTransformerSupplier<A, B, C, D> implements TransformerSupplier<A, B, KeyValue<C, D>> {

    @Autowired
    private CustomConfiguration configuration;

    public abstract CustomTransformer<A, B, KeyValue<C, D>> get();

    public Set<StoreBuilder<?>> stores() {
        return configuration.getTransformationStoreBuilders();
    }
}

但是,CustomTransformerSupplier Bean将由客户端创建,我们无法在非Bean类中自动连接Bean。
如何在变压器供应商中自动设置存储构建器?
我为什么要采用上述方法是因为:

  • 客户端可以有n个存储构建器
  • 将有一个ProcessorSupplier和一个TransformerSupplier。它们可以共享公共状态存储。
  • 我希望客户端只需创建状态存储,而不必担心将状态存储注入TransformerSupplier和processorSupplier。

提前感谢!

xlpyo6sf

xlpyo6sf1#

看看@Configurable能否回答您的问题:https://docs.spring.io/spring-framework/docs/current/reference/html/core.html#aop-atconfigurable

相关问题