如何创建仅用于一个 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