springboot 启动原理

简介: springboot 启动原理

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

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

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

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

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

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

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

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

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

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

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

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

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

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

目录
相关文章
|
4天前
|
Java 应用服务中间件 API
Vertx高并发理论原理以及对比SpringBoot
Vertx 是一个基于 Netty 的响应式工具包,不同于传统框架如 Spring,它的侵入性较小,甚至可在 Spring Boot 中使用。响应式编程(Reactive Programming)基于事件模式,通过事件流触发任务执行,其核心在于事件流 Stream。相比多线程异步,响应式编程能以更少线程完成更多任务,减少内存消耗与上下文切换开销,提高 CPU 利用率。Vertx 适用于高并发系统,如 IM 系统、高性能中间件及需要较少服务器支持大规模 WEB 应用的场景。随着 JDK 21 引入协程,未来 Tomcat 也将优化支持更高并发,降低响应式框架的必要性。
Vertx高并发理论原理以及对比SpringBoot
|
2月前
|
Java 应用服务中间件 开发者
Java面试题:解释Spring Boot的优势及其自动配置原理
Java面试题:解释Spring Boot的优势及其自动配置原理
99 0
|
14天前
|
Java 开发者 数据格式
【Java笔记+踩坑】SpringBoot基础4——原理篇
bean的8种加载方式,自动配置原理、自定义starter开发、SpringBoot程序启动流程解析
【Java笔记+踩坑】SpringBoot基础4——原理篇
|
2月前
|
SQL Java 数据库连接
springboot~mybatis-pagehelper原理与使用
【7月更文挑战第15天】MyBatis-PageHelper是用于MyBatis的分页插件,基于MyBatis的拦截器机制实现。它通过在SQL执行前动态修改SQL语句添加LIMIT子句以支持分页。使用时需在`pom.xml`添加依赖并配置方言等参数。示例代码: PageHelper.startPage(2, 10); List<User> users = userMapper.getAllUsers(); PageInfo<User> pageInfo = new PageInfo<>(users); 这使得分页查询变得简单且能获取总记录数等信息。
|
2月前
|
Java 开发者 Spring
深入理解Spring Boot中的自动配置原理
深入理解Spring Boot中的自动配置原理
|
2月前
|
开发框架 Java 开发者
Spring Boot中的自动装配原理
Spring Boot中的自动装配原理
|
3月前
|
消息中间件 Java Maven
深入理解Spring Boot Starter:概念、特点、场景、原理及自定义starter
深入理解Spring Boot Starter:概念、特点、场景、原理及自定义starter
|
3月前
|
Java 应用服务中间件 Spring
解析Spring Boot自动装配的原理与机制
解析Spring Boot自动装配的原理与机制
73 4
|
3月前
|
缓存 Java 开发者
SpringBoot自动装配原理
SpringBoot自动装配原理
49 1
|
3月前
|
开发框架 Java 开发者
Spring Boot中的自动装配原理
Spring Boot中的自动装配原理