簡體   English   中英

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上獲得類似的功能嗎?

[編輯]為什么與CDI實例或“指導提供者”的Spring等效項不相同
根據我的理解,在上述問題中,有一個隱藏的假設,即我同時擁有兩種上下文: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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM