ConfigurableListableBeanFactory beanFactory = obtainFreshBeanFactory();

beanFactory被new出来之后就有默认的7个,
image.png
在当前上下文中初始化beanFactory


// Prepare the bean factory for use in this context.

prepareBeanFactory(beanFactory);

调用工厂后处理器:根据反射机制从BeanDefinitionRegistry中找到所有实现了BeanFactoryPostProcess接口的bean,并调用其postProcessBeanFactory()方法

// 调用我们的bean工厂的后置处理器.
invokeBeanFactoryPostProcessors(beanFactory);

解析配置类

public void processConfigBeanDefinitions(BeanDefinitionRegistry registry) {}

过滤处理传入的主配置类

// Parse each @Configuration class
解析每一个配置类
主要做事的方法是doProcessConfigurationClass()
(ConfigurationClass configClass, SourceClass sourceClass)
在这个方法中有几条注解

// Process any @PropertySource annotations 处理@PropertySource注解
// Process any @ComponentScan annotations 处理任何@ComponentScan扫描到的注解
// Process any @Import annotations 处理@Import注解
// Process any @ImportResource annotations 处理ImportResource注解
// Process individual @Bean methods 处理@Bean注解
// Process default methods on interfaces
// Process superclass, if any

处理完成之后返回null


李沁春
17 声望1 粉丝

喜欢运动,骑行、打羽毛球、打乒乓球等。也喜欢打桌游,玩狼人杀、剧本杀等烧脑游戏。