- 某些情況下我們要獲取 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();
