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名称获取BeanDefinitionBeanDefinition getBeanDefinition(String beanName) throws NoSuchBeanDefinitionException;/ /获取bean名称的IteratorIterator<String> getBeanNamesIterator()
bean的元数据缓存
void clearMetadataCache();
冻结bean的配置
// 冻结所有bean定义,表明注册的bean定义将不再修改或后期处理。void freezeConfiguration();// bean的定义是否被冻结boolean isConfigurationFrozen();
lazy-init相关
// 非延迟加载的bean都实例化void preInstantiateSingletons() throws BeansException;