SpringBoot启动流程

SpringBoot提供自动化配置、快速构建和方便部署的功能。启动时加载配置文件,创建SpringApplication实例,初始化Spring环境,加载自动配置并创建应用上下文。应用关闭时执行清理操作。主要涉及Spring的生命周期事件、配置加载和应用上下文的管理。

Spring Boot 是一个基于 Spring 框架的快速开发和部署的框架,提供了自动化配置、快速构建、方便部署的特性。

  1. 启动应用:通过调用 SpringApplicationrun 方法,启动应用,同时触发 Spring 的生命周期事件。

  2. 运行应用:应用启动后,会进入运行状态,处理请求、响应和业务逻辑等。

  3. 关闭应用:当应用被关闭时,会触发 Spring 的生命周期事件,执行一些清理操作,如销毁 Bean 实例等。

Spring 的运行概要过程:

  1. 加载配置:Spring Boot 应用启动时,会加载应用的配置文件,包括 application.propertiesapplication.yml 等,默认从 src/main/resources 目录下加载。

  2. 创建 SpringApplication 实例:Spring Boot 使用 SpringApplication 类作为应用的启动入口,会创建一个 SpringApplication 的实例,用于控制应用的启动流程。

  3. 配置参数:通过 SpringApplication 实例,可以设置应用的各种参数,如应用的配置文件、Spring Boot 特有的配置等。可以通过方法调用或命令行参数进行设置。

  4. 初始化 Spring 环境:Spring Boot 会初始化一个 Spring 环境(ConfigurableEnvironment),用于管理应用的配置信息。

  5. 加载自动配置:Spring Boot 使用自动配置(Auto Configuration)功能,根据应用的依赖和配置,自动加载和配置 Spring Boot Starter,这些 Starter 包含了常用的配置和依赖,可以快速构建应用的基本环境。

  6. 创建应用上下文:Spring Boot 根据应用的配置和依赖,创建一个 Spring 应用上下文(ApplicationContext)实例,用于管理应用的 Bean 定义和 Bean 实例。

  7. 执行启动器:Spring Boot 会自动执行所有在应用上下文中注册的启动器(ApplicationRunnerCommandLineRunner 接口的实现类),这些启动器可以用于执行应用启动时需要执行的初始化操作。

简图:

 

SpringBoot启动流程可以分为以下几个步骤: 1. 确定应用程序类型。在启动SpringBoot时,首先需要确定应用程序的类型。这可以通过设置启动类的注解来实现,比如使用@SpringBootApplication注解。 2. 创建SpringBoot应用程序上下文。在确定应用程序类型后,SpringBoot会创建一个应用程序上下文(ApplicationContext)对象。这个上下文对象是整个应用程序的核心,包含了所有的配置信息和Bean定义。 3. 加载配置文件。SpringBoot会自动加载并解析应用程序的配置文件,包括application.properties或application.yml等。这些配置文件可以用来配置应用程序的各种属性,如数据库连接、端口号等。 4. 扫描和注册Bean。SpringBoot会扫描应用程序中的所有类,并将符合条件的类注册为Bean。这可以通过@ComponentScan注解来实现,它会扫描指定包及其子包中的所有类。 5. 执行Bean的初始化和依赖注入。在注册Bean后,SpringBoot会执行Bean的初始化操作,并将其依赖的其他Bean注入到其中。这可以通过使用@Autowired注解来实现。 6. 启动应用程序。在完成上述步骤后,SpringBoot启动应用程序。这将导致应用程序开始监听指定的端口,并处理来自客户端的请求。 总而言之,SpringBoot启动流程包括确定应用程序类型、创建应用程序上下文、加载配置文件、扫描和注册Bean、执行Bean的初始化和依赖注入,最后启动应用程序。 <span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [9千字长文带你了解SpringBoot启动过程--史上最详细 SpringBoot启动流程-图文并茂](https://blog.youkuaiyun.com/weixin_44947701/article/details/124055713)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老罗技术

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值