Spring Boot 启动流程

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

Spring Boot 启动流程


简介

步骤

加载配置

Spring Boot在启动时会加载应用程序的配置文件(例如application.properties或application.yml),并将其转化为内部的配置对象。

创建应用程序上下文

Spring Boot会创建一个应用程序上下文(ApplicationContext),它是Spring框架的核心容器。应用程序上下文负责管理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 应用上下文(Application Context),并将其保存在 applicationContext 字段中。
    在创建应用上下文的过程中,会根据不同的条件选择不同的应用上下文,如是否启用 Web 环境、是否使用嵌入式的 Servlet 容器等;
  • 4.应用上下文创建成功后,SpringApplication 类会调用 prepareContext 方法对应用上下文进行一些预处理操作,例如设置默认的属性、注册默认的 Bean、应用一些配置等;
  • 5.然后,SpringApplication 类会调用 applyInitializers 方法执行一些初始化操作,例如调用 ApplicationContextInitializer 接口实现类中的 initialize 方法;
  • 6.紧接着,SpringApplication 类会调用 listeners 字段中保存的所有 ApplicationListener 接口实现类中的 onApplicationEvent 方法,完成事件监听器的执行;
  • 7.最后,SpringApplication 类会调用 refreshContext 方法,启动应用上下文,并开始接收请求。
    在整个启动过程中,核心知识点包括:
    • 应用上下文的创建和选择
    • 预处理操作和初始化操作的执行
    • 事件监听器的注册和执行
    • 应用上下文的启动

扩展

自定义注解以及自定义注解实现中有bean,与启动流程什么有关

  • 自定义注解的启用涉及到两个关键步骤:Bean扫描和注解处理。
Bean扫描

在Spring Boot的启动过程中,会执行Bean扫描操作,通过扫描指定的包路径,查找并注册所有被注解标记的类(包括自定义注解中的类)作为Bean。这个步骤一般发生在应用上下文创建之前,通常在 prepareContext 方法中完成。可以通过 @ComponentScan 注解来指定要扫描的包路径,确保自定义注解所在的包被扫描到。

注解处理

在Bean扫描后,Spring会处理所有注册的Bean,包括对注解的解析和处理。当自定义注解标记在某个类上时,Spring会解析该注解并执行相应的逻辑。如果自定义注解中涉及到使用Service(或其他Bean),通常是通过依赖注入的方式进行加载。在自定义注解所标记的类中,可以使用 @Autowired 或者 @Resource 注解来注入所需的Service或其他Bean,Spring会负责将相应的Bean注入到对应的字段或方法参数中。

需要注意的是,自定义注解所在的类必须被扫描到并注册为Bean,才能触发注解处理和相关的依赖注入操作。确保自定义注解所在的包路径被正确扫描,同时注解所标记的类也需要被正确加载和实例化文章来源地址https://www.toymoban.com/news/detail-462758.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日
    浏览(29)
  • 还不懂 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)
  • Spring Boot简介

      Spring Boot是一个基于Spring框架的快速开发脚手架,它简化了Spring应用的初始化和搭建过程,提供了众多便利的功能和特性,比如自动配置、嵌入式Tomcat等,让开发人员可以更加专注于业务逻辑的实现。   Spring Boot还提供了强大的插件体系和广泛的集成,可以轻松地与其

    2024年02月10日
    浏览(42)
  • Spring Boot——Spring Boot启动原理

    2.1.1Spring Boot入口 2.1.2初始化SpringApplication 准备阶段,在程序运行之前初始化一些属性,用于在后序启动应用程序过程中。 2.1.2.1判断当前应用程序类型 2.1.2.2设置应用程序的所有初始化器(initializers) 上面这段代码主要是通过加载 “spring.factories” 配置文件中指定类型的工厂名

    2024年02月15日
    浏览(34)
  • 【Spring Boot】Spring Boot特点及重要策略,含安装步骤详细讲解

    前言 Spring Boot是由Pivotal团队提供的全新框架 ,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式, Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application dev

    2024年02月08日
    浏览(44)
  • Spring Boot跨域问题简介

    在Web开发中,跨域指的是在浏览器中访问一个不同于当前域名的资源。浏览器出于安全考虑,限制了这种跨域资源的访问。具体来说,当浏览器使用XMLHttpRequest或Fetch API发送跨域请求时,目标服务器必须在响应头中包含特定的CORS(跨源资源共享)规则,否则浏览器会阻止该请

    2024年02月09日
    浏览(27)
  • spring boot 嵌入chatGPT步骤

    一、需要良好的网络 二、需要在OpenAI官网https://openai.com/注册用户,并获取一个api-key,sk开头的 验证是否可用网站:http://tools.lbbit.top/check_key_valid/ 三、spring boot 配置文件 四、新建配置类AiServiceFactory 如果需要中转站代理的话,该类里面的方法如下 五、测试控制器,当然也可

    2024年01月24日
    浏览(32)
  • Spring Boot(四):Spring Boot启动原理分析

    文章目录 Spring Boot启动原理分析 一、依赖导入原理 二、Spring Boot包扫描原理 

    2024年02月01日
    浏览(36)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包