1. 从启动类开始
public static void main ( String [ ] args) {
SpringApplication . run ( Application . class , args) ;
}
2. bean 实例化
run ( )
run ( )
refreshContext ( context) ;
refresh ( context) ;
applicationContext. refresh ( ) ;
finishBeanFactoryInitialization ( beanFactory) ;
beanFactory. preInstantiateSingletons ( ) ;
preInstantiateSingletons ( ) ;
getBean ( ) ;
goGetBean ( )
createBean ( )
3. bean 依赖注入
// SpringAplication row=1294
run()
// SpringAplication row=1035
run()
// SpringAplication row=308
refreshContext(context);
// SpringAplication row=407
refresh(context);
// SpringAplication row=734
applicationContext.refresh();
// AbstractApplicationContext row=583
finishBeanFactoryInitialization(beanFactory);
4. 删除实例及其依赖实例
destroySingleton ( )
destroyBean ( )
destroy ( )