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;
相關文章
相關標籤/搜索