SpringBoot底层原理

聊一聊SpringBoot的启动流程?

SpringBoot,启动!主要包括创建SpringApplication对象和执行run方法两部分。

在SpringApplication构造方法内部执行时,它首先会确认web应用的类型,默认是servlet类型的,这种类型的后面会自动开启一个tomcat。

然后,再读取spring.factories配置文件,加载对应的ApplicationContextInitializer和ApplicationListener实现类。

最后,还会记录一下当前应用的启动类,将来做bean扫描时会用到。

然后就是执行run方法了,这一步会真正的实例化IOC容器以及创建容器所需要的非懒加载的单例bean。

具体步骤就是首先准备Environment对象,里面封装了应用运行时所需要的环境参数,例如环境变量等。

然后,就会实例化IOC容器,会先创建一个ApplicationContext对象。

再然后,就是为IOC容器设置Environment,BeanPostProcessor等,并加载主类对应的definition

最后,执行refresh方法,创建所有非懒加载的单例bean实例,最终返回一个ConfigurableSpringApplication

 

聊一聊IOC容器的初始化流程?

执行AbstractSpringApplication的refresh()方法,具体包括:

1.准备BeanFactory,这一步需要给BeanFactory设置很多属性,比如类加载器ClassLoader、Environment等

2.执行BeanFactoryPostProcessor,这一步会扫描所有的beanDefinition信息

3.注册BeanPostProcessor

4.启动tomcat

5.通过beanfactory创建所有非懒加载的单例bean,初始化IOC容器完成

6.做一些容器扫尾工作,例如清理三级缓存

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值