Spring Context 是否等价于 Java CDI 的 @Inject @Any

Does Spring Context have equivalent of Java CDI's @Inject @Any

在 Java CDI 中,有一个很棒的功能可以收集共享超类型的所有托管 bean。假设我要收集 MyInterceptor 的所有托管实例,我只需要写:

@Inject
@Any
Instance<MyInterceptor> myInterceptors;

我在处理 EJB 时能够获得类似的功能,尽管那里的解决方案不太漂亮(我需要调用 BeanManager)。

在由 Spring 上下文管理的@Component 上工作时,我能否获得类似的功能?

[编辑] 为什么不是 What is the Spring equivalent for CDI's Instance, or Guices Provider
的副本 根据我的理解,在上面的问题中,有一个隐藏的假设,即我有两个上下文:Spring 和 CDI,情况可能并非总是如此(尤其是在 Java SE应用)。此外,我在混合上下文方面有不好的经验,他们经常声称它们是兼容的,但情况并非总是如此。您可能会陷入意想不到的问题,例如:https://blog.akquinet.de/2017/01/04/dont-get-trapped-into-a-memory-leak-using-cdi-instance-injection/

如果您将字段指定为具有通用类型 MyInterctptorList,您应该能够实现您正在寻找的内容。例如:

@Autowired
List<MyInterceptor> interceptors;

可在此处找到更多信息:https://dzone.com/articles/load-all-implementors