Spring启动时如何推断Bean的构造方法实例化代码段?
- 内容介绍
- 文章标签
- 相关推荐
本文共计6603个文字,预计阅读时间需要27分钟。
目录[1] 前言[2] 对实例化的疑问[3] 推断构造方法源码分析 - 针对实例化过程的分析 - 主要推断构造方法,如何进行匹配[1] 前言实例化步骤这一步是关键,以下是对其实例化过程的探讨。
目录
- 前言
- 对于实例化的疑问
- 推断构造方法源码分析
针对实例化过程中会做什么的分析,其中主要的是怎么推断出构造方法,怎么进行匹配
前言
实例化这一步便是在doCreateBean方法的 instanceWrapper = createBeanInstance(beanName, mbd, args);这段代码中。
对于实例化的疑问
对于Spring中的beanBeanDefinition,需要通过实例化得到一个bean对象才会被放入容器中,而实例化就需要用到构造方法。
分析:一个类存在多个构造方法,那么Spring进行实例化时,该如何去确定到底用哪个构造方法呢?
1. 如果开发者指定了想要使用的构造方法,那么就用这个构造方法。
2. 如果开发者没有指定想要使用的构造方法,则看开发者有没有让Spring自动去选择构造方法。
3. 如果开发者也没有让Spring自动去选择构造方法,则Spring利用无参构造方法,如果没有无参构造方法,则报错。
本文共计6603个文字,预计阅读时间需要27分钟。
目录[1] 前言[2] 对实例化的疑问[3] 推断构造方法源码分析 - 针对实例化过程的分析 - 主要推断构造方法,如何进行匹配[1] 前言实例化步骤这一步是关键,以下是对其实例化过程的探讨。
目录
- 前言
- 对于实例化的疑问
- 推断构造方法源码分析
针对实例化过程中会做什么的分析,其中主要的是怎么推断出构造方法,怎么进行匹配
前言
实例化这一步便是在doCreateBean方法的 instanceWrapper = createBeanInstance(beanName, mbd, args);这段代码中。
对于实例化的疑问
对于Spring中的beanBeanDefinition,需要通过实例化得到一个bean对象才会被放入容器中,而实例化就需要用到构造方法。
分析:一个类存在多个构造方法,那么Spring进行实例化时,该如何去确定到底用哪个构造方法呢?
1. 如果开发者指定了想要使用的构造方法,那么就用这个构造方法。
2. 如果开发者没有指定想要使用的构造方法,则看开发者有没有让Spring自动去选择构造方法。
3. 如果开发者也没有让Spring自动去选择构造方法,则Spring利用无参构造方法,如果没有无参构造方法,则报错。

