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-2025 CODEPRJ.COM