•集合類型依賴查找接口-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,產生一些不確定的因素;