•集合类型依赖查找接口-ListableBeanFactory
•根据Bean 类型查找
•获取同类型Bean 名称列表
•getBeanNamesForType(Class)
•Spring 4.2 getBeanNamesForType(ResolvableType)
•获取同类型Bean 实例列表 非延迟的实例
•getBeansOfType(Class) 以及重载方法
•通过注解类型查找
•Spring 3.0 获取标注类型Bean 名称列表
•getBeanNamesForAnnotation(Class<? extends Annotation>)
•Spring 3.0 获取标注类型Bean 实例列表
•getBeansWithAnnotation(Class<? extends Annotation>)
•Spring 3.0 获取指定名称+ 标注类型Bean 实例
•findAnnotationOnBean(String,Class<? extends Annotation>)
尽量不要通过类型type判断bean是否存在,会提早初始化你的bean;通过bean的名称去判断bean是否存在,重要的方式是判断beanDefinition是否存在,这种方式会避免提早初始化你的bean,产生一些不确定的因素;