SpringBoot的生命周期 SpringBoot监听器在生命周期中的作用时间和顺序 SpringBoot 监听机制 SpringApplicationRunListener

本文概述了SpringBoot应用程序启动时的详细步骤,包括创建上下文、执行监听器、准备环境、创建IOC容器、Bean初始化等关键环节,以及监听器如Startup、ApplicationContextInitializer和Runner的执行顺序。
摘要由CSDN通过智能技术生成

个人学习Spring Boot时所做总结,如有错误欢迎指正补充。

@生命周期顺序@项目启动的时候,都有那些执行的东西,和顺序。


从启动的入口进入:

在这里插入图片描述
可打断点一步一步的调试。

1、先开始项目基础计时

Startup startup = Startup.create();

2、创建上下文对象的类

ConfigurableApplicationContext context = null;

3、获取所有监听器(SpringApplicationRunListener)

SpringApplicationRunListeners listeners = getRunListeners(args);

4、遍历执行所有监听器中的Starting方法

image.png

5、开始准备环境

image.png
image.png

6、打印Banner图标

image.png

7、创建IOC容器

8、ApplicationContextInitializer监听器开始执行(IOC容器初始化的时候)

9、IOC容器开始准备:并不会准备全部的Bean对象,只准备基础的

image.png

10、当refreshContext(context);执行的时候,才会去配置文件找那些Bean把需要创建出来

image.png

11、到这里IOC容器的对象才算完成,上下文对象准备完成(初始化Bean)。

afterRefresh(context, applicationArguments);刷新一下

12、项目计时结束

startup.started();

其中包含了关于Spring Boot应用程序启动的信息。具体来说,截图显示了以下信息:

  • startTime:一个Long类型的值,表示应用程序启动的开始时间,以Unix时间戳(毫秒)表示。
  • timeTakenToStarted:一个Duration对象,表示应用程序启动所花费的时间。

Duration对象的seconds字段值为4215,nanos字段值为651000000。这意味着应用程序启动总共花费了4215秒加上651000000纳秒。Duration对象的字符串表示**“PT1H10M15.651S”**表示这段时间为1小时10分钟15.651秒。
因此,这个截图表示应用程序从启动到准备完毕总共花费了大约1小时10分钟的时间。这通常包括加载Spring上下文、初始化bean、连接数据库、启动内嵌服务器等所有启动相关的过程。

13、调用SpringApplicationRunListeners监听器,执行IOC容器加载完成的方法。(之前我们或许不知道是否IOC准备完成了,但是现在通过监听器我们得知已经IOC容器加载完成了)

image.png

14、执行Runner监听器回调,ConmmandLineRunner监听器和ApplicationRunner监听器会被执行

image.png

15、判断IOC容器对象是否在运行

16、是的话,调用监听器SpringApplicationRunListener,执行ready,项目启动完成的方法

image.png

17、最后把IOC容器对象返回回去。

图例:

image.pngimage.png

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Spring Boot生命周期主要包括以下几个阶段: 1. 启动:当应用启动时,Spring Boot 会读取配置文件、执行自动配置类、加载应用程序上下文。 2. 运行:当应用程序上下文加载完毕后,应用程序将开始运行,可以处理请求和提供服务。 3. 关闭:当应用程序停止运行时,Spring Boot 会关闭应用程序上下文并销毁所有的单例 bean。 在 Spring Boot 生命周期,你可以定义自己的生命周期事件,例如在启动之前或关闭之后执行特定的操作。这样,你就可以在应用生命周期的不同阶段执行不同的任务,更好地管理你的应用程序。 ### 回答2: Spring Boot生命周期可以分为以下几个阶段: 1. 配置阶段:在Spring Boot应用程序启动之前,会根据配置文件以及默认配置,加载并解析各种配置信息,比如数据库连接信息、日志配置等。 2. 初始化阶段:在配置阶段完成后,Spring Boot会根据配置信息,初始化各种组件和Bean对象,包括加载并注册各种Spring组件、创建数据库连接池等。 3. 运行阶段:初始化完成后,Spring Boot会创建并启动内嵌的Tomcat等Web容器,接收和处理用户的请求,并根据配置信息调用相应的Spring组件处理请求。 4. 销毁阶段:当应用程序关闭或重启时,Spring Boot会按照一定的顺序销毁各种组件和Bean对象,释放资源,关闭数据库连接池等。 在整个生命周期Spring Boot还提供了一些其他的特性和功能,比如自动配置、热部署、监控等,以提高开发效率和运行性能。同时,Spring Boot还能通过各种插件和扩展点,实现对不同功能的扩展和定制。 总的来说,Spring Boot生命周期包括配置阶段、初始化阶段、运行阶段和销毁阶段,每个阶段都有相应的功能和操作,在开发和运行过程发挥作用。通过了解和掌握Spring Boot生命周期,可以更好地理解和使用Spring Boot框架,提高开发效率和应用程序的性能。 ### 回答3: Spring Boot生命周期是指在应用程序的整个启动过程Spring Boot框架执行的一系列关键步骤。 首先,Spring Boot应用程序的生命周期始于应用程序的启动,在启动过程Spring Boot会加载应用程序的配置文件,例如application.properties或application.yml,并根据这些配置来进行初始化。 接下来,Spring Boot会创建并启动一个内嵌的Web服务器,例如Tomcat或Undertow,以便能够处理HTTP请求。同时,Spring Boot还会自动配置一些基本的Web相关的机制,例如DispatcherServlet、ErrorController等。 随后,在启动过程Spring Boot会根据应用程序的依赖关系,自动装配和初始化Spring容器。Spring Boot会搜索并加载应用程序的所有基于注解的配置类,并根据这些配置类的注解来进行Bean的注册和依赖注入。 接着,Spring Boot会执行所有已注册Bean的初始化过程,包括调用相应Bean的构造函数、设置属性值、注册事件监听器等。同时,Spring Boot也提供了一些扩展机制,例如ApplicationRunner和CommandLineRunner接口,可以在应用程序启动后执行一些特定的操作。 最后,在应用程序启动完成后,Spring Boot会进入运行状态,开始处理用户的请求。用户可以通过编写Controller和相关的业务逻辑来处理请求,并可以使用Spring Boot提供的注解和工具类来简化开发。 总之,Spring Boot生命周期包括加载配置、启动内嵌Web服务器、自动装配Spring容器、初始化Bean以及处理用户请求等关键步骤。这一系列步骤使得Spring Boot可以快速方便地构建、配置和部署应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值