ConfigurableListableBeanFactory

ConfigurableListableBeanFactory继承了ListableBeanFactory, AutowireCapableBeanFactory, ConfigurableBeanFactory。在ConfigurableBeanFactory的基础上,它还提供了分析和修改bean定义以及预实例化单例的工具

类结构

image.png

方法解析

忽略自动装配

// 在装配的时候忽略指定的依赖类型
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;

大军
847 声望183 粉丝

学而不思则罔,思而不学则殆