Spring Framework 其他
2020-04-09 17:17:59 0 举报
Spring 流程
作者其他创作
大纲/内容
destroyMethod()
beanDefinitionMap
AnnotatedBeanDefinitionReader是一个 BeanDefinition 读取器,能够将一个类转换成 BeanDefinition
BeanDefinitionRegistry
beanDefinitionNames
BeanDefinitionRegistrybd读取器,其实就是 AnnotationConfigApplicationContext
BeanPostProcessor
容器关闭后触发
@PostConstruct
earlySingletonFactories存放原始的 bean 对象用于解决循环依赖,存到里面的对象还没有被填充属性
获取配置类:springConfig
constructor()
@Bean
Spring BeanFactoryPostProcessor 执行流程
beanDefinitionMap是一个 map,key 为 beanName,value 是 BeanDefinition(bean 的描述信息)
@PreDestroy
AnnotationConfigApplicationContextSpring 的上下文环境,它也是一个 BeanDefinitionRegistry
destroy()
AnnotationConfigApplicationContext
beanPostProcessorsbean 后置处理器,插手 bean 的实例化过程,spring 内置 7 个:span style=\
configurationClasses
postProcessBeanDefinitionRegistry()执行 bean 后置处理器
earlySingletonFactories
postProcessBeforeInitialization()
postProcessspan style=\
singletonObjects
获取
loadBeanDefinitions()从 configurationClasses、importBeanDefinitionRegistrars 中获取对象,然后再存入 beanDefinitionMap 中
importBeanDefinitionRegistrars
singletonFactories
postProcessAfterInitialization()
ClassPathBeanDefinitionScanner能够扫描包,然后把类转换成 BeanDefinition
ClassPathBeanDefinitionScanner
@BeanPostProcessor@PreDestroy
ComponentScan包扫描,将扫描到的bean 直接存入到 beanDefinitionMap
BeanFactoryPostProcessor
parse()解析配置类
DefaultListableBeanFactorySpring Bean 工厂
afterPropertiesSet()
singletonFactories存放 bean,主要是为了解决循环依赖
@Import处理 @Import 三种情况,先不存入 beanDefinitionMap
InitializingBeanDisposableBean
Spring Bean
beanDefinitionNames存放所有 beanName 的集合
beanPostProcessors
Spring bean 的生命周期回调
BeanDefinitionRegistryPostProcessor
AnnotatedBeanDefinitionReader
initMethod()
DefaultListableBeanFactory
0 条评论
下一页