聊聊 Springboot 启动原理

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

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请求和执行一些额外的逻辑。

责任编辑:武晓燕 来源: java知路
相关推荐

2023-11-02 09:25:42

springSystem

2023-04-28 08:43:46

2022-06-21 07:51:06

Redis高可用哨兵进程

2022-02-07 21:49:19

串行通信UART

2022-12-11 20:09:50

网络编程通信

2021-07-14 14:05:24

Fragment项目结构

2022-07-26 07:14:52

Docker宿主命令

2021-04-19 10:45:52

Webpack热更新前端

2020-04-21 22:59:50

Redis搭建选举

2024-04-07 08:23:01

JS隔离JavaScript

2021-02-08 21:40:04

SockmapBPF存储

2021-11-06 18:40:27

js底层模块

2022-02-08 23:59:12

USB接口串行

2020-02-19 19:18:02

缓存查询速度淘汰算法

2021-06-28 11:29:50

生成水印插件

2022-06-06 07:58:52

勒索软件恶意软件解密

2022-12-19 08:00:00

SpringBootWeb开发

2020-07-27 16:10:49

SpringBoottomcaJava

2020-06-11 11:36:49

线程池Java场景

2023-12-07 12:45:58

进程共享数据
点赞
收藏

51CTO技术栈公众号