聊聊 Springboot 启动原理

Spring Boot的启动原理是通过SpringApplication类来实现的。具体流程如下:

创建一个应用程序的SpringApplication实例

分析应用程序的上下文环境(包括Java系统属性、环境变量、命令行参数等),并将其转化为一个可配置的ApplicationContextInitializer列表。

创建一个可配置的Environment实例,并且将其作为参数传递给创建的ApplicationContextInitializer列表中的每个实例进行初始化。

创建一个可配置的ResourceLoader实例,并将其传递给创建的ApplicationContextInitializer列表中的每个实例进行初始化。

调用ApplicationContextInitializer列表中每个实例的initialize方法,对应用程序的上下文环境进行初始化。

创建一个可配置的BeanDefinitionRegistry实例,并将其传递给创建的ApplicationContextInitializer列表中的每个实例进行初始化。

创建一个可配置的ApplicationContext实例,并且将其作为参数传递给创建的ApplicationContextInitializer列表中的每个实例进行初始化。

调用ApplicationContextInitializer列表中每个实例的initialize方法,对ApplicationContext进行初始化。

注册应用程序的主类(如果存在)作为一个bean,并调用其run方法来启动应用程序。

如果应用程序的主类是一个ServletInitializer(用于Web应用程序),则通过调用其onStartup方法来启动Web容器。

使用Spring的DispatcherServlet来处理HTTP请求。

如果应用程序的主类实现了CommandLineRunner接口,则调用其run方法,以便在应用程序启动后执行一些额外的逻辑。

Spring Boot的启动原理是通过创建SpringApplication实例来分析应用程序的上下文环境并初始化ApplicationContext,然后通过调用应用程序的主类来启动应用程序,同时处理Web请求和执行一些额外的逻辑。

文章版权声明

 1 原创文章作者:4778,如若转载,请注明出处: https://www.52hwl.com/31582.html

 2 温馨提示:软件侵权请联系469472785#qq.com(三天内删除相关链接)资源失效请留言反馈

 3 下载提示:如遇蓝奏云无法访问,请修改lanzous(把s修改成x)

 免责声明:本站为个人博客,所有软件信息均来自网络 修改版软件,加群广告提示为修改者自留,非本站信息,注意鉴别

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023年7月14日 上午12:00
下一篇 2023年7月15日