springboot的启动流程图_@SpringBootApplication

springboot的启动流程图_@SpringBootApplication首先会new一个SpringApplication然后在构造方法里初始化一些属性。判断应用类型是响应式REACTIVE的还是Web应用SERVLET去spring.factories文件加载初始化器ApplicationContextInitializer去spring.factories文件加载监听器ApplicationListener实例化之后执行run方法主体,run执行流程是基于观察者模式的,整个SpringBoot的启动流程就是各种事件的发布。获取并启用监听器Applicati..

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

  1. 首先会new一个SpringApplication然后在构造方法里初始化一些属性。

    判断应用类型是响应式REACTIVE的还是Web应用SERVLET

    去spring.factories文件加载初始化器ApplicationContextInitializer

    去spring.factories文件加载监听器ApplicationListener

  2. 实例化之后执行run方法主体,run执行流程是基于观察者模式的,整个SpringBoot的启动流程就是各种事件的发布。
    获取并启用监听器ApplicationListener,并发布应用启动事件SpringApplicationRunListener

  3. 准备环境变量,包含系统属性和用户配置的属性以及maven变量等,执行的代码块在 prepareEnvironment 方法内

  4. 创建应用程序的上下文createApplicationContext()

  5. 去spring.factories文件加载异常报告器SpringBootExceptionReporter

  6. 准备上下文环境prepareContext(这一步会执行初始化方法,其实就是执行实现了ApplicationContextInitializer 接口的类)

  7. 刷新上下文refreshContext,主要是自动装配和启动 tomcat

  8. 刷新上下文后置处理afterRefresh,空方法

  9. 发布上下文准备就绪事件

  10. 执行自定义的run方法。ApplicationRunner和CommandLineRunner

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/197371.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • phpstorm2022 激活码[最新免费获取]

    (phpstorm2022 激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~0V…

    2022年3月31日
    795
  • Springboot集成swagger_springboot nginx

    Springboot集成swagger_springboot nginx目前java操作redis的客户端有jedis跟Lettuce。在springboot1.x系列中,其中使用的是jedis,但是到了springboot2.x其中使用的是Lettuce。因为我们的版本是springboot2.x系列,所以今天使用的是Lettuce。关于jedis跟lettuce的区别:Lettuce和Jedis的定位都是Redis的client,所以他们当然可以直接…

    2022年9月22日
    0
  • windows杀死进程[通俗易懂]

    windows杀死进程[通俗易懂]netstat-aon|findstr8080查询端口号为8080的进程tasklist|findstr”1900″找到pid为1900的运行中的程序taskkill/imtomcat7.exe/f强制解除进程

    2022年9月21日
    0
  • 跟我学系列教程——《13天让你学会Redis》火热报名中

    跟我学系列教程——《13天让你学会Redis》火热报名中

    2021年12月2日
    51
  • linux制作img镜像文件_linux用命令打开浏览器

    linux制作img镜像文件_linux用命令打开浏览器linuxrootfs.img的制作cramfs是只读压缩的文件系统,文件系统类型可以是ext2,ext3,什么的, cramfs和romfs只是一个文件系统类型,ramdisk相当于一块硬盘空间,可以理解为在内存中虚拟出一块硬盘来,所以它上面就可以有你linux支持的各种文件系统什么的。所以你问的,它和romfs和cramfs确实不是一个层次的概念。^-^恭喜你,你答

    2022年9月27日
    1
  • docker(11)Dockerfile 中的COPY与ADD 命令

    docker(11)Dockerfile 中的COPY与ADD 命令前言Dockerfile中提供了两个非常相似的命令COPY和ADD,本文尝试解释这两个命令的基本功能,以及其异同点,然后总结其各自适合的应用场景。Build上下文的概念在使用dock

    2022年7月30日
    18

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号