ConfigurableListableBeanFactory
ConfigurableListableBeanFactory 继承了 ListableBeanFactory, AutowireCapableBeanFactory, ConfigurableBeanFactory。在 ConfigurableBeanFactory 的基础上,它还提供了分析和修改 bean 定义以及预实例化单例的工具
类结构
方法解析
忽略自动装配
// 在装配的时候忽略指定的依赖类型
void ignoreDependencyType(Class<?> type);
// 在装配的时候忽略指定的接口
void ignoreDependencyInterface(Class<?> ifc);
依赖
// 注册可解析的依赖
void registerResolvableDependency(Class<?> dependencyType, @Nullable Object autowiredValue);
// 指定的 bean 是否可以作为自动选派的候选,boolean isAutowireCandidate(String beanName, DependencyDescriptor descriptor)
throws NoSuchBeanDefinitionException;
BeanDefinition
// 根据 bean 名称获取 BeanDefinition
BeanDefinition getBeanDefinition(String beanName) throws NoSuchBeanDefinitionException;
/ / 获取 bean 名称的 Iterator
Iterator<String> getBeanNamesIterator()
bean 的元数据缓存
void clearMetadataCache();
冻结 bean 的配置
// 冻结所有 bean 定义,表明注册的 bean 定义将不再修改或后期处理。void freezeConfiguration();
// bean 的定义是否被冻结
boolean isConfigurationFrozen();
lazy-init 相关
// 非延迟加载的 bean 都实例化
void preInstantiateSingletons() throws BeansException;