spring bean的生命周期,以及九大后置处理器
2021-01-20 13:53:50 1 举报
spring getbean的深度解析,以及九大后置处理器
作者其他创作
大纲/内容
BeanPostProcessor#postProcessBeforeInitialization
给对象赋值
DefaultListableBeanFactory#resolveDependency
SmartInstantiationAwareBeanPostProcessor#determineCandidateConstructors
SmartInitializingSingleton
AbstractAutowireCapableBeanFactory#autowireConstructor
通过构造器生成对象(使用策略模式)
AbstractApplicationContext#finishBeanFactoryInitialization
AbstractAutowireCapableBeanFactory#resolveBeforeInstantiation
BeanPostProcessor#postProcessAfterInitialization
ApplicationListener#onApplicationEvent
默认set注入
AbstractBeanFactory#resolveBeanClass
构造注入
调用对象的初始化方法
InstantiationAwareBeanPostProcessor#postProcessAfterInstantiation
AbstractAutowireCapableBeanFactory#createBeanInstance
BeanFactory#getBean(java.lang.String)
AbstractAutowireCapableBeanFactory#instantiateUsingFactoryMethod
Ribben的实现方式,kafkaspring的实现方式
DependencyDescriptor#resolveCandidate
ConstructorResolver#autowireConstructor
AutowireCandidateResolver#getSuggestedValue
复制处理bean定义信息中的beanClass属性的值
拦截@bean的形式的生成BeanMethodInterceptor,ConfigurationClassPostProcessor#postProcessBeanFactory添加上的,通过对字节码增强技术对@Configer类的方法添加拦截,类似aop
AbstractApplicationContext#refresh
AbstractAutowireCapableBeanFactory#invokeAwareMethods
ConstructorResolver#createArgumentArray
这是对实体bean的一些处理,
Eureka服务端启动的方式
AbstractApplicationContext#finishRefreshfinishRefresh
Nacos服务注册与发现的实现
AbstractAutowireCapableBeanFactory#populateBean
AbstractAutowireCapableBeanFactory#getEarlyBeanReference
实体对象的前置处理器
从容器中拿依赖的对象
AbstractAutowireCapableBeanFactory#doCreateBean
AbstractAutowireCapableBeanFactory#invokeInitMethods
getBean
MergedBeanDefinitionPostProcessor#postProcessMergedBeanDefinition
InstantiationAwareBeanPostProcessor#postProcessBeforeInstantiation
处理通过@Bean或者通过BeanFactory方式注入的bean
省略部分
@Resouce CommonAnnotationBeanPostProcessor#postProcessPropertyValues
获取已经生成好的对象
放入早期对象的引用到三级缓存中去(这里可以是代理对象或者是普通对象)
InitDestroyAnnotationBeanPostProcessor,CommonAnnotationBeanPostProcessor,AutowiredAnnotationBeanPostProcessor
ConfigurationClassEnhancer.BeanMethodInterceptor#intercept
DefaultListableBeanFactory#doResolveDependency
调用bean的后置处理器对象
InstantiationStrategy#instantiate
Lifecycle#start
ConstructorResolver#resolveAutowiredArgument
InstantiationAwareBeanPostProcessor#postProcessPropertyValues
收藏
收藏
0 条评论
回复 删除
下一页