Spring:獲取容器中的Bean


  • 某些情況下我們要獲取 IOC 容器中指定注解、類型、名字的 Bean
  • 要獲取 IOC 容器中指定條件的 Bean 可以通過 ApplicationContext 相應的方法
@Autowired private ApplicationContext applicationContext; 

獲取指定注解所有的 Bean

Map<String,Object> objectMap = applicationContext.getBeansWithAnnotation(Service.class); 

獲取指定注解所有的 Bean 的名字

String[] beanNames = applicationContext.getBeanNamesForAnnotation(Service.class); 

獲取容器中指定某類型、或實現某接口、或繼承某父類所有的 Bean

Map<String, Test> objectMap = applicationContext.getBeansOfType(Test.class); 

獲取容器中指定某類型、或實現某接口、或繼承某父類所有的 Bean 的名稱

String[] beanNames = applicationContext.getBeanNamesForType(Service.class); 

獲取指定名字的 Bean

Test testbean = (Test)applicationContext.getBean("testbean"); 

獲取指定名字、類型的 Bean,指定的類型可以是其父類或所實現的接口

Object object = applicationContext.getBean("testbean", TestInterface.class); 

獲取指定類型、或接口、或某類的子類的 Bean

Object object = applicationContext.getBean(TestInterface.class); 

獲取容器中 Bean 的數量

int beanCount = applicationContext.getBeanDefinitionCount(); 

獲取容器中所有 Bean 的名字

String[] beanNames = applicationContext.getBeanDefinitionNames();




免責聲明!

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



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