我正在创建一个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。
提前感谢!
1条答案
按热度按时间xlpyo6sf1#
看看
@Configurable
能否回答您的问题:https://docs.spring.io/spring-framework/docs/current/reference/html/core.html#aop-atconfigurable