spring学习之源码分析ConfigurableListableBeanFactory

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;

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理