springboot的启动流程

简介: springboot的启动流程

Spring Boot 的启动流程经过以下步骤:


1. 加载主配置类:Spring Boot 使用 `main` 方法作为应用程序的入口,在该方法中,会创建一个 `SpringApplication` 对象,并指定主配置类。


2. 创建ApplicationContext:`SpringApplication` 会根据主配置类创建一个 `ApplicationContext` 对象,该对象是 Spring 的核心容器,负责管理和组织应用程序中的各个组件。


3. 执行自动配置:Spring Boot 会根据类路径上的依赖和配置,自动配置应用程序中的各个组件。它会将自动配置类加载到容器中,并根据条件注解来确定哪些组件应该被装配。


4. 执行监听器:应用程序启动时,Spring Boot 会触发一系列的事件。这些事件可以被应用程序中定义的监听器捕获和处理。监听器可以在应用程序启动前后执行特定的逻辑。


5. 运行应用程序:`SpringApplication` 调用 `ApplicationContext` 的 `refresh()` 方法来完成容器的刷新和初始化工作。然后,它会根据配置的 Web 环境来决定是启动内嵌的 Servlet 容器还是使用外部的 Servlet 容器。


6. 加载控制器和处理请求:当应用程序成功启动并运行时,控制器将根据请求的路径来执行相应的业务逻辑,并给出响应。


7. 应用程序关闭:当应用程序关闭时,Spring Boot 会触发相应的事件,监听器可以捕获这些事件并执行清理操作。同时,Spring Boot 会关闭容器和释放相关资源。


除了上述的基本流程,Spring Boot 还提供了许多扩展点和配置选项,可以用于自定义和修改默认的启动流程。这些扩展点包括自定义的 Starter 模块、自定义的自动配置类、定制化的属性配置等。通过这些扩展点,开发人员可以更灵活地配置和定制 Spring Boot 应用程序的启动过程。


相关文章
|
6月前
|
前端开发 Java 应用服务中间件
SpringBoot-Run启动流程
探索Spring Boot启动流程,从加载配置、创建应用上下文、自动配置到启动内嵌服务器。启动类是入口点,`@SpringBootApplication`标记启动,`SpringApplication.run`启动应用。自动配置基于条件注解配置Bean,应用上下文由`SpringApplication`创建并刷新。内嵌服务器如Tomcat随应用启动,简化部署。理解此流程有助于深入掌握Spring Boot。
210 2
|
6月前
|
缓存 Java 程序员
springboot的启动流程总结
springboot的启动流程总结
|
6月前
|
设计模式 Java 容器
SpringBoot2 | SpringBoot启动流程源码分析(二)
SpringBoot2 | SpringBoot启动流程源码分析(二)
77 0
|
6月前
|
设计模式 Java 机器人
SpringBoot3自动配置流程 SPI机制 核心注解 自定义starter
SpringBoot3自动配置流程 SPI机制 核心注解 自定义starter
|
1月前
|
前端开发 Java 数据安全/隐私保护
用户登录前后端开发(一个简单完整的小项目)——SpringBoot与session验证(带前后端源码)全方位全流程超详细教程
文章通过一个简单的SpringBoot项目,详细介绍了前后端如何实现用户登录功能,包括前端登录页面的创建、后端登录逻辑的处理、使用session验证用户身份以及获取已登录用户信息的方法。
142 2
用户登录前后端开发(一个简单完整的小项目)——SpringBoot与session验证(带前后端源码)全方位全流程超详细教程
|
5月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp小程序的销售项目流程化管理系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp小程序的销售项目流程化管理系统附带文章源码部署视频讲解等
65 3
|
29天前
|
NoSQL Java Redis
shiro学习四:使用springboot整合shiro,正常的企业级后端开发shiro认证鉴权流程。使用redis做token的过滤。md5做密码的加密。
这篇文章介绍了如何使用Spring Boot整合Apache Shiro框架进行后端开发,包括认证和授权流程,并使用Redis存储Token以及MD5加密用户密码。
24 0
shiro学习四:使用springboot整合shiro,正常的企业级后端开发shiro认证鉴权流程。使用redis做token的过滤。md5做密码的加密。
|
1月前
|
XML Java 应用服务中间件
【Spring】运行Spring Boot项目,请求响应流程分析以及404和500报错
【Spring】运行Spring Boot项目,请求响应流程分析以及404和500报错
143 2
|
29天前
|
JSON 前端开发 JavaScript
优雅!Spring Boot 3.3 实现职责链模式,轻松应对电商订单流程
本文介绍如何使用 Spring Boot 3.3 实现职责链模式,优化电商订单处理流程。通过将订单处理的各个环节(如库存校验、优惠券核验、支付处理等)封装为独立的处理器,并通过职责链将这些处理器串联起来,实现了代码的解耦和灵活扩展。具体实现包括订单请求类 `OrderRequest`、抽象处理器类 `OrderHandler`、具体处理器实现(如 `OrderValidationHandler`、`VerifyCouponHandler` 等)、以及初始化职责链的配置类 `OrderChainConfig`。
|
3月前
|
XML Java 应用服务中间件
SpringBoot启动流程解析
SpringBoot启动流程解析
44 0
下一篇
无影云桌面