spring学习之源码分析--ConfigurableListableBeanFactory

ConfigurableListableBeanFactory

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

类结构

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;

BeanDefinitionspa

// 根据bean名称获取BeanDefinition
BeanDefinition getBeanDefinition(String beanName) throws NoSuchBeanDefinitionException;
/ /获取bean名称的Iterator
Iterator<String> getBeanNamesIterator()

bean的元数据缓存code

void clearMetadataCache();

冻结bean的配置blog

// 冻结全部bean定义,代表注册的bean定义将再也不修改或后期处理。
void freezeConfiguration();
// bean的定义是否被冻结
boolean isConfigurationFrozen();

lazy-init相关继承

// 非延迟加载的bean都实例化
void preInstantiateSingletons() throws BeansException;
相关文章
相关标签/搜索