Spring bean到底是如何创建的?(下)(三)

pivoteic
发布于 2022-6-15 17:13
浏览
0收藏

 

2)初始化阶段

 

接下来进入invokeInitMethods方法

Spring bean到底是如何创建的?(下)(三)-鸿蒙开发者社区Spring bean到底是如何创建的?(下)(三)-鸿蒙开发者社区

这里进行了bean的初始化,就是如果你的bean实现了InitializingBean接口或者你配置了自定义的initMethod(xml中有属性可以配置,@Bean注解的initMethod属性配置),这里就会回调你的方法

 

3)初始化之后阶段

Spring bean到底是如何创建的?(下)(三)-鸿蒙开发者社区Spring bean到底是如何创建的?(下)(三)-鸿蒙开发者社区

这些阶段继续回调BeanPostProcessor方法,其实在这个阶段,就完成了对于对象的动态代理的生成,具体是由 AspectJAwareAdvisorAutoProxyCreator 这个实现完成的,大家可以自己翻一下这个实现类的postProcessAfterInitialization方法,是在这个类的父类中实现的。

 

到这里为止,一个单例的bean就被完完整整的给创建出来了,你平时使用的对象也就是这个对象。

 

接下来就是将对象放在 singletonObjects 缓存中,如果下次有查询的话,就直接从这个缓存中查找出来返回(上一篇文章说过,先查询,如果查不到再创建)。

 

文章转自公众号:三友的java日记

标签
已于2022-6-15 17:13:04修改
收藏
回复
举报
回复
    相关推荐