Spring獲取實現某接口的所有實例bean


1、獲取 applicationContext,通過ApplicationAware自動注入

2、getBeansOfType、getBeanNamesForType

//key位 beanName,value為bean
Map<String, Interface> result = applicationContext().getBeansOfType(Interface.class);

//返回 beanName 的String 數組
String[] result = applicationContext().getBeanNamesForType(Interface.class);

注:這種方法除了可以獲取實現【接口】的所有Bean,也可以獲取所有繼承【抽象類/類】的所有Bean,如下

Map<String, AbstractObject> result = applicationContext().getBeansOfType(AbstractObject.class);

 

 

補充:java通過Class的isAssignableFrom方法

  注釋:【a.isAssignableFrom(b)】有兩個Class類型的類象,一個是調用isAssignableFrom方法的類對象(對象a),以及方法中作為參數的這個類對象(對象b),這兩個對象如果滿足以下條件則返回true,否則返回false:

    a對象所對應類信息是b對象所對應的類信息的父類或者是父接口,簡單理解即a是b的父類或接口

    a對象所對應類信息與b對象所對應的類信息相同,簡單理解即a和b為同一個類或同一個接口


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM