Springboot是Spring的脚手架,提供的自动配置功能初始化spring的ioc容器,
BeanDefinition:可以理解为定义bean
bean的生命周期,大部分初始化和赋值在AbstractAutowireCapableBeanFactory.doCreateBean 下来定义的:
- 创建bean
- 赋值和变量
- 初始化bean 包括 BeanPostProcessor,initMethod等
- AOP相关的内容
- 被销毁
SpringApplicationContext:Spring的容器负责放置初始化好的bean
SpringFactoriesLoader 加载 spring.factories
从注解开始说
@enableSpringAutoConfig ->Configeration ->inportSelector-> AutoConfigurationImportSelector
@SpringBootConfig- mapperScan
@ComponentScan
autoConfigerationSelector.class 会解析 autoconfig包下面的bean.factory
从SpringBoot.run()说
SpringApplication.run()入口
AbstractApplicationContext.refresh()创建了ApplicationContext容器后刷新
DefaultListableBeanFactory,deGetBean() ApplicationContext集成了 ListableBeanFactory
DefaultSingletonBeanRgistry.getSingleton() 获取单例的bean实例
AbstractAutowireCapableBeanFactory.createBean();创建对应的bean对应上面的Bean的生命周期
newInstance()