首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Bean的生命周期

(1)调用InstantiationAwareBeanPostProcessor的Before/AfterInstantiation尝试返回一个代理对象          如果返回null,继续下面的步骤,否则直接返回。 (2)createBeanInstance(beanName, mbd, args)创建bean (3)population:Bean的属性赋值         @Autoward的属性注入(AutowiredAnnotationBeanPostProcessor impl InstantiationAwareBeanPostProcessor) (4)initializeBean:初始化           4.1处理aware接口           4.2applyBeanPostProcessorsBeforeInitialization           4.3initMethod                    比如init-method,@PostConstruct等配置的初始化方法          4.4applyBeanPostProcessorsAfterInitialization                     AOP就是在这里实现的:AnnotationAwareAspectJAutoProxyCreator的postProcessAfterInitialization方法实现包装Bean

01

Spring IOC 容器源码分析 - 创建单例 bean 的过程

在上一篇文章中,我比较详细的分析了获取 bean 的方法,也就是getBean(String)的实现逻辑。对于已实例化好的单例 bean,getBean(String) 方法并不会再一次去创建,而是从缓存中获取。如果某个 bean 还未实例化,这个时候就无法命中缓存。此时,就要根据 bean 的配置信息去创建这个 bean 了。相较于getBean(String)方法的实现逻辑,创建 bean 的方法createBean(String, RootBeanDefinition, Object[])及其所调用的方法逻辑上更为复杂一些。关于创建 bean 实例的过程,我将会分几篇文章进行分析。本篇文章会先从大体上分析 createBean(String, RootBeanDefinition, Object[])方法的代码逻辑,至于其所调用的方法将会在随后的文章中进行分析。

07
领券