扫码阅读
手机扫码阅读

Spring 容器原始 Bean 是如何创建的?

38 2024-11-28

我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。

查看原文:Spring 容器原始 Bean 是如何创建的?
文章来源:
江南一点雨
扫码关注公众号

本文介绍了Spring容器创建Bean的核心过程,主要聚焦于createBeanInstance方法的内部执行逻辑。文章以Spring源码中方法的执行顺序为例,逐步分析了Bean的创建过程。

1. doCreateBean

doCreateBean方法中,通过调用createBeanInstance方法来真正创建Bean实例。该过程包括前置后置处理器的调用,但文章主要关注单纯的Bean创建过程。

2. createBeanInstance

这个方法负责根据配置创建Bean。首先是resolveBeanClass方法解析当前的beanClass对象,它通过反射根据配置的类全路径加载Class对象,支持SpEL表达式。

2.1 resolveBeanClass

这一步主要是通过反射加载出Class对象,支持直接的类路径配置或SpEL表达式配置。

2.2 Supplier 和 factory-method

如果配置了Supplier或factory-method,将使用这些方式获取Bean实例。

2.3 re-create逻辑

如果Bean之前已经创建过,就不需要重新确定构造方法,直接使用已解析的构造方法创建Bean实例。

2.4 构造器注入

涉及SmartInstantiationAwareBeanPostProcessor的处理,可能会根据提供的构造方法创建Bean。

2.5 PreferredConstructors

针对Kotlin的主构造方法,Java开发者可以忽略。

2.6 instantiateBean

使用无参构造方法创建Bean实例。

3. 小结

文章总结了Spring容器中原始Bean的创建步骤,内容庞杂。作者还分享了一个时序图作为参考,并指出熟悉Spring用法是理解源码的关键。

同时,文章开头提到了TienChin视频杀青,该项目使用Spring Boot和Vue3技术栈,并邀请读者参与完成一个完成率超90%的项目。

想要了解更多内容?

查看原文:Spring 容器原始 Bean 是如何创建的?
文章来源:
江南一点雨
扫码关注公众号