继承关系图如上
ConfigurableListableBeanFactory继承了ListableBeanFactory、AutowireCapableBeanFactory和ConfigurableBeanFactory三个接口,并扩展了忽略依赖,自动装配判断,冻结Bean的定义,枚举
所有Bean的功能,提供BeanDefinition的解析,注册功能,对单例的预加载(解决循环依赖问题),工厂接口的自有方法总体上只是对父类接口功能的补充,包含了BeanFactory体系目前的所有方法
,可以说是接口的集大成者。
接口主要方法有
1、ignoreDependencyType(Class<?> type)
忽略给定的自动装配依赖关系类型
2、ignoreDependencyInterface(Class<?> ifc)
忽略给定的自动装配依赖关系接口
3、registerResolvableDependency(Class<?> dependencyType, @Nullable Object autowiredValue)
使用相应的自动装配值注册特殊依赖关系类型
4、isAutowireCandidate(String beanName, DependencyDescriptor descriptor)
确定指定的Bean是否有资格作为autowire的候选者,注入到声明匹配类型依赖关系的其他Bean中。
5、getBeanDefinition(String beanName)
返回指定Bean的已注册BeanDefinition,允许访问其属性值和构造函数参数值(可以在Bean工厂后处理期间修改)
6、getBeanNamesIterator() 返回所有Bean名称的迭代对象
7、clearMetadataCache() 清除合并的Bean定义缓存,删除尚未被认为有资格进行完整元数据缓存的Bean条目。
8、freezeConfiguration() 冻结所有的Bean定义,表明注册的Bean定义不会被修改或进一步处理
9、isConfigurationFrozen() 返回是否冻结此工程的Bean定义。
10、preInstantiateSingletons() 确保所有的非Lazy-init单例都被实例化,预加载不是懒加载的单例.用于解决循环依赖问题。