如何创建仅用于一个 bean 的条件 bean
How to create conditional bean to be used for only one bean
我在配置 class 上创建了一个 bean,但我希望只有一个 bean 应该使用这个自定义 bean。我不希望任何其他 bean 可以使用它。
这是我的配置 class;
@Configuration
public class ProcessorConfig {
@Bean
public List<Processor> processors(){
SSto processor1 = new SSto();
CSto processor2 = new CSto();
DGTu processor3 = new DGTu();
EGam processor4 = new EGam();
return of(processor1, processor2, processor3, processor4);
}
}
这是我想要使用这个自定义 bean 的 bean。
@Component
@RequiredArgsConstructor
public class ProcessorDecorator {
private final List<Processor> processors;
public void apply(Ga ga) {
this.processors.forEach(processor -> processor.apply(ga));
}
}
我只想让这个 ProcessorDecorator class 注入 List processors。没有其他 class 可以注入这个 List processors。
我怎样才能做到这一点?
如果您只想 ProcessorDecorator
只有这个处理器列表,为什么不在 ProcessorDecorator
中声明这些处理器?
其他方法是为 bean 指定自定义名称
@Bean(name = "decoratorProcessors")
并在 ProcessorDecorator
@Qualifier("decoratorProcessors")
中添加限定符,但其他 类 注入处理器可能应该有 @Qualifier("processors")
来阻止它们注入 decoratorProcessors
我在配置 class 上创建了一个 bean,但我希望只有一个 bean 应该使用这个自定义 bean。我不希望任何其他 bean 可以使用它。
这是我的配置 class;
@Configuration
public class ProcessorConfig {
@Bean
public List<Processor> processors(){
SSto processor1 = new SSto();
CSto processor2 = new CSto();
DGTu processor3 = new DGTu();
EGam processor4 = new EGam();
return of(processor1, processor2, processor3, processor4);
}
}
这是我想要使用这个自定义 bean 的 bean。
@Component
@RequiredArgsConstructor
public class ProcessorDecorator {
private final List<Processor> processors;
public void apply(Ga ga) {
this.processors.forEach(processor -> processor.apply(ga));
}
}
我只想让这个 ProcessorDecorator class 注入 List processors。没有其他 class 可以注入这个 List processors。 我怎样才能做到这一点?
如果您只想 ProcessorDecorator
只有这个处理器列表,为什么不在 ProcessorDecorator
中声明这些处理器?
其他方法是为 bean 指定自定义名称
@Bean(name = "decoratorProcessors")
并在 ProcessorDecorator
@Qualifier("decoratorProcessors")
中添加限定符,但其他 类 注入处理器可能应该有 @Qualifier("processors")
来阻止它们注入 decoratorProcessors