Spring6梳理2——Spring运行HelloWorld底层原理

以上笔记来源:
尚硅谷Spring零基础入门到进阶,一套搞定spring6全套视频教程(源码级讲解)https://www.bilibili.com/video/BV1kR4y1b7Qc

目录

一、前言

二、程序分析

2.1.1  底层是怎么创建对象的,是通过反射机制调用无参数构造方法吗?

2.1.2  Spring是如何创建对象的呢?原理是什么?


一、前言

在之前的文章中,我们简要介绍了Spring的应用定位及特点,并使用IntelliJ IDEA编写了第一个Spring程序,接下来我们分析一下程序运行原理


二、程序分析

2.1.1  底层是怎么创建对象的,是通过反射机制调用无参数构造方法吗?

图2-1-1  覆盖系统默认的无参构造方法的HelloWorld实体类

图2-1-2  修改了HelloWorld类的无参构造方法的运行结果

从图2-1-1中,将HelloWorld类的无参构造方法进行了覆盖,添加了输出语句
运行结果如图2-1-2所示
综上所述,创建对象时确实调用了无参数构造方法。

2.1.2  Spring是如何创建对象的呢?原理是什么?

bean对象最终存储在spring容器中,在spring源码底层就是一个map集合,存储bean的map在DefaultListableBeanFactory类中:

图2-1-3  用来存储bean的map

如图2-1-3所示,Spring容器加载到Bean类时 , 会把这个类的描述信息, 以包名加类名的方式存到beanDefinitionMap 中, Map<String,BeanDefinition> , 其中 String是Key , 默认是类名首字母小写 , BeanDefinition , 存的是类的定义(描述信息) , 我们通常叫BeanDefinition接口为 : bean的定义对象。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值