SpringBoot启动过程

本文详细解析了SpringBoot的启动过程,从构建SpringApplication对象到启动完成,包括处理命令行参数、创建Spring容器、初始化环境变量、根据web应用类型选择容器、预处理Spring容器、刷新Spring容器以及调用ApplicationRunner和CommandLineRunner等关键步骤。通过对启动过程的理解,有助于深入掌握SpringBoot的工作原理。
摘要由CSDN通过智能技术生成

构建SpringApplication对象

这里分为2部分,先new一个SpringApplication对象【入参是启动类】,再去调用这个对象的run方法。

1.primarySources属性记录传进来的启动类是什么,当做spring的配置类

2.有可能不是web应用,也能是Springboot java应用【recative是响应式的 Servlet是阻塞式的 古老的web类型 都能接受web请求的】

用ClassLoader加载到了就是这个响应式的应用

如果没有响应式的那些类并且没有Servlet这些类 那就是Servlet类型【SpringMVC类型】

等下会根据不同的web应用类型创建不同的spring容器。

取spring.factories里面的扩展点

springboot会去拿这个接口的实现类,默认情况下是没有这个接口扩展点的

看下面的

拿到这个ApplicationContextInitializer接口的5个实现类

然后赋值给spring容器的初始化器

拿到所有的监听器实现类,赋值给listeners这个属性

推测启动类是什么,因为传进来的配置类可以不一定是启动类【通过调用栈,调用链是main的拿到启动类】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值