SmartInstantiationAwareBeanPostProcessor
afterPropertiesSet
ApplicationContextInitializer
CommandLineRunner
InstantiationAwareBeanPostProcessor
BeanFactoryAware
setBeanName
postProcessMergedBeanDefinition
initialize
postProcessBeforeInitialization
Container
destroy
postProcessBeanFactory
invokeAwareInterfaces
BeanFactoryPostProcessor
refresh
postProcessAfterInitialization
InitializingBean
SmartInitializingSingleton
AbstractApplicationContext
指定init方法(注解属性或xml)
指定的destroy方法(通过注解或xml)
BeanNameAware
BeanDefinitionRegistryPostProcessor
@PreDestroy
determineCandidateConstructors
postProcessAfterInstantiation
getEarlyBeanReference
postProcessPropertyValues
ApplicationContextAwareProcessor
setBeanFactory
postProcessBeforeInstantiation
run
FactoryBean
@PostConstruct
DisposableBean
postProcessBeanDefinitionRegistry
MergedBeanDefinitionPostProcessor
getObject
afterSingletonsInstantiated