全网最清楚的:Spring Boot 启动流程讲解

这篇具有很好参考价值的文章主要介绍了全网最清楚的:Spring Boot 启动流程讲解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

文章目录

Spring Boot 启动流程

  • 简介
  • 步骤
  • 加载配置
  • 创建应用程序上下文
  • 执行自动配置
  • 启动应用程序
  • 处理请求
  • 源码层说明
  • 扩展
  • 自定义注解以及自定义注解实现中有bean,与启动流程什么有关
  • Bean扫描
  • 注解处理

Spring Boot 的启动流程
充分利用了 Spring 框架的强大功能,同时又为开发者提供了简洁、快速的开发体验。

在 Spring Boot 的启动流程中,核心是由 SpringApplication 类负责管理。在启动时,SpringApplication 会扫描当前应用程序中的所有组件,并根据其中的注解信息构建出应用程序的上下文环境。此外,SpringApplication 还会处理当中的配置文件,包括 application.properties 和 application.yml,以及通过命令行参数传递的配置信息。最后,通过运行 Spring 应用程序头节点的 run() 方法,整个启动流程得以完成。

总之,Spring Boot 启动流程的简洁高效,使得开发者可以更加专注于业务本身的实现,从而实现更快速、可靠的开发过程。这个城市的夜晚总是那么美丽,灯光在街道上交错闪烁着,和煦的风拂面而来,带着些许清新的气息。人们在街头巷尾穿行,匆忙于各自的生活,却无法掩盖这座城市的热闹与活力。夜色里,城市的轮廓渐渐清晰,仿佛一位美人在缓缓展露自己的容颜,令人心醉神迷。概述

简要介绍

配置加载

在程序运行过程中,需要加载各种配置以使程序正常运行。为了保证效率和稳定性,我们需要很好地处理配置的加载。Spring Boot会在启动时自动读取应用程序的配置文件(如application.properties或application.yml),并将其转换为内部的配置对象。

构建应用上下文

构建应用上下文是指为了让应用程序在运行时有统一的环境配置、依赖注入和管理资源,而创建一个上下文对象。这个上下文对象会被传递给应用的不同组件,使得它们能够共享这些信息。通常情况下,具体的上下文对象会包含应用程序所需的一些配置参数、数据库连接、日志记录器、缓存管理以及其他依赖组件等。

在构建应用上下文之前,需要对整个应用程序进行分析和设计,确定需要用到哪些组件以及它们之间的依赖关系。然后,根据这些需求编写具体的上下文实现,在创建时将不同组件进行组合和装配。最后,通过依赖注入将上下文对象交给应用程序的使用者,使得它们可以在需要时获取上下文所提供的资源和依赖组件。

总之,构建应用上下文是应用程序开发中一项重要的任务,它能够提供一个可重用的、灵活的、集成化的环境,为应用程序的正确运行和可维护性提供了基础。Spring框架的核心容器是应用程序上下文(ApplicationContext),在使用Spring Boot时会自动创建。这个上下文负责管理Bean的生命周期、调用容器来获取Bean,以及注入Bean的依赖关系等任务。

进行自动配置

进行自动配置是目前很多软件系统在安装和使用过程中的重要环节。自动配置能够使系统自动根据用户需求和系统环境等自动调整参数,从而更加贴合用户需求,提高系统的整体性能。在软件开发过程中,程序员需要完善程序的自动配置功能,确保用户能够方便快捷地进行配置。只有自动配置得当,才能达到真正的智能化操作。根据应用程序的依赖和配置,Spring Boot借助自动配置的机制,可自动进行Spring框架不同模块的设置。这一方案以约定优于配置为核心理念,并能轻松地依照类路径上的依赖和配置信息,开启数据库、Web服务器、消息队列等功能。

启动应用程序

开始运行应用程序启动Spring Boot应用程序时,会默认执行主类中的main方法,并通过调用SpringApplication的静态run方法来启动应用程序。在启动过程中,Spring Boot会自动创建一个内嵌式的Web服务器(例如Tomcat),并将应用程序的请求流量交给该服务器来处理。

处理请求

一旦应用程序启动并监听指定的端口,它将能够处理来自客户端的HTTP请求。Spring Boot使用Spring MVC框架来处理请求,并根据请求的URL映射到相应的Controller处理业务逻辑。
源码层说明

1.对于应用的启动,我们可以使用 SpringApplication.run 方法;
2.在 SpringApplication 类的 run 方法内,我们首先会创建一个 SpringApplication 对象,并对传入的参数进行处理,将其转换为 SpringApplication 对象的属性并设置应用的环境;
3.随后,SpringApplication 类会调用 createApplicationContext 方法来创建 Spring 应用上下文,并将其存储在 applicationContext 字段内。在应用上下文的创建过程中,我们会根据不同的条件选择不同的应用上下文,如启用 Web 环境、使用嵌入式 Servlet 容器等;1. 在应用启动前,需要先创建应用上下文,即 ApplicationContext。
4.创建应用上下文后,可以通过 prepareContext 方法对应用上下文进行一些预处理操作,如设置属性、注册 Bean、应用配置等。
5.接着,可以通过 applyInitializers 方法执行一些初始化操作,如调用 ApplicationContextInitializer 接口实现类中的 initialize 方法。
6.执行完初始化操作后,通过 listeners 中保存的所有 ApplicationListener 接口实现类中的 onApplicationEvent 方法,完成事件监听器的执行。
7.最后,通过 refreshContext 方法启动应用上下文,并开始接收请求。

在整个启动过程中,需要注意应用上下文的创建和预处理操作、初始化操作和事件监听器的执行以及应用上下文的刷新和启动等关键点。同时,也需要了解 ApplicationContextInitializer 接口和 ApplicationListener 接口的实现方式和使用场景。
创建和选择应用上下文;
执行预处理和初始化操作;
注册和执行事件监听器;
启动应用上下文。

以下是扩展的:

自定义注解可以作为应用程序中的配置元素,被注解的类将在程序启动时被自动加载,从而影响启动程序的流程。而自定义注解的实现需要通过Bean的定义与管理,可以在启动程序时将Bean实例化并加入底层容器中存储,从而实现应用程序的正常运行。

因此,对于开发人员而言,在设计自定义注解或实现自定义注解时需要考虑其如何与Bean相互关联并影响运行流程,以确保应用程序的稳定运行和高效性能。同时,需要注意自定义注解和Bean的定义、管理方式等方面的细节问题,以避免出现潜在的错误和问题。自定义注释的启用必须经过两个关键步骤:Bean扫描和注释处理。

Bean查找

Bean查找是Spring中非常重要的一部分,它允许我们轻松地查找和获取Spring容器中的Bean实例。在Spring中,可以通过声明性查找和编程式查找两种方式来查找Bean。声明式查找是指将Bean的查找过程的工作交给Spring容器来完成,我们只要在配置文件中进行简单的声明即可。而编程式查找则是在代码中通过调用Spring容器提供的API来查找Bean实例。

Bean查找还可以通过使用注解来进行指定。在使用注解时,我们可以使用Spring的注解(如@Autowired)或是自定义注解来标记需要被查找的Bean实例。在程序启动时,Spring容文章来源地址https://www.toymoban.com/news/detail-465772.html

到了这里,关于全网最清楚的:Spring Boot 启动流程讲解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Spring Boot 3.x 系列【51】启动流程 | 最后阶段

    有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot版本3.1.0 源码地址:https://gitee.com/pearl-organization/study-spring-boot3 终于启动流程到了最后一个阶段,这里主要是打印启动完成日志、调用监听器、运行 Runners 等 。

    2024年02月15日
    浏览(30)
  • 还不懂 Spring Boot 启动流程的,看这一篇就够了!

    通常,我们只需为一个类添加@SpringBootApplication注解,然后再添加一个main方法,其内固定的写法为SpringApplication.run(Application.class, args)。由此,便可启动Spring Boot服务。 具体而言,Spring Boot的启动流程包括以下几个步骤: 载入 Spring Boot 应用的启动类 根据启动类所在的包路径扫

    2024年02月05日
    浏览(29)
  • Spring Boot 3.x 系列【49】启动流程 | 创建、准备应用上下文

    有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot版本3.1.0 源码地址:https://gitee.com/pearl-organization/study-spring-boot3

    2024年02月14日
    浏览(26)
  • Docker启动安装nacos(详情讲解,全网最细)

    安装之前你需要准备一个mysql,当前安装方式是将数据持久化到数据库中的,这里的部署是单机模式 PS:这是拉取最新的nacos版本,如果需要拉取别的版本可以加:版本号(如:docker pull nacos/nacos-server:v2.2.0) PS:这一步是添加映射文件夹,将宿主机的文件映射到nacos容器中 P

    2024年02月03日
    浏览(32)
  • 基于jeecg-boot的flowable流程收回功能实现(全网首创功能)

    更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码: https://gitee.com/nbacheng/nbcio-boot 前端代码:https://gitee.com/nbacheng/nbcio-vue.git 在线演示(包括H5) : http://122.227.135.243:9888               对于之前的flowable流程,之前有撤回,拒绝,退回等功能,但都不能满足发起人对于

    2024年02月12日
    浏览(35)
  • 一篇文章搞定《APP的启动流程》

    前面已经铺垫了Binder、Handler、View的绘制流程 那么该来看看APP的启动流程了,是如何启动了我们这些重要的组件 本文会按照步骤和启动需要的成员并附带一点点源码进行讲解。 以了解熟悉启动的流程为主。不会大篇幅的利用源码深入。 本文结构: 1、冷启动、温启动、热启

    2024年02月16日
    浏览(29)
  • Spring Boot 笔记 028 文章列表

    1.1 导入中文语言包 1.2 显示文章分类 1.3.1 article.js增加文章列表接口 1.3.2 页面调用接口显示数据 1.3.3 表单绑定categoryname 1.3.4 搜索按钮,重置按钮,分页按钮 1.4 添加文章按钮 1.4.1 编辑页面,绑定数据,添加样式 1.4.2 文本编辑器 1.4.2.1 安装vue-quill 1.4.2.2 导入组件和样式 1.4.2

    2024年02月21日
    浏览(25)
  • Spring Boot项目 目录结构

    根目录: com.zhangziwa.practisesvr 启动类: com.zhangziwa.practisesvr.PractisesvrApplication 实体类: com.zhangziwa.practisesvr.model 数据传输对象(dto): com.zhangziwa.practisesvr.dto 视图包装对象(vo)推荐: com.zhangziwa.practisesvr.vo 数据接口访问层(Dao): com.zhangziwa.practisesvr.mapper 数据服务接口层(S

    2024年01月25日
    浏览(29)
  • 2023最新首发,全网最全 Spring Boot 学习宝典(附思维导图)

    作者: bug菌 博客:CSDN、掘金、infoQ、51CTO等 简介:CSDN/阿里云/华为云/51CTO博客专家,博客之星Top30,掘金年度人气作者Top40,51CTO年度博主Top12,掘金/InfoQ/51CTO等社区优质创作者,全网粉丝合计10w+,硬核微信公众号「猿圈奇妙屋」,欢迎你的加入!免费领取简历模板/学习资料

    2024年02月11日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包