系列十六、SpringBoot内置web服务器为Tomcat原理分析

一、概述

        作为Spring家族的明星产品,SpringBoot极大地简化了程序员的日常开发,提高了开发效率。我们很容易得借助于SpringBoot就可以快速开发业务代码,不知道大家有没有思考过,当我们在idea中创建了一个SpringBoot项目,引入 spring-boot-starter-web 后直接运行main方法,会在控制台打印如下信息:

系列十六、SpringBoot内置web服务器为Tomcat原理分析_第1张图片

        很明显这说明SpringBoot启动服务时,默认使用的web服务器是Tomcat,这是通过实际结果证明的,那么代码层面呢?SpringBoot是如何集成Tomcat,让其对外提供服务的呢?这就涉及到了SpringBoot的自动配置原理了,下面请看源码分析:

二、原理

        1、当我们初始化一个springboot工程后,会在自动配置类 ServletWebServerFactoryAutoConfiguration 中启用内置Tomcat;

系列十六、SpringBoot内置web服务器为Tomcat原理分析_第2张图片

        2、SpringBoot主启动类运行时,会创建Spring容器 AnnotationConfigServletWebServerApplicationContext

        3、调用容器的refreshContext方法加载IOC容器;

        4、执行 invokeBeanFactoryPostProcessors(beanFactory)  解析所有的自动配置类;

        5、调用 onRefresh 方法,创建webServer;

系列十六、SpringBoot内置web服务器为Tomcat原理分析_第3张图片

        6、创建Tomcat & 启动Tomcat服务,并阻塞Tomcat服务

系列十六、SpringBoot内置web服务器为Tomcat原理分析_第4张图片

系列十六、SpringBoot内置web服务器为Tomcat原理分析_第5张图片

你可能感兴趣的:(SpringBoot系列,java,spring,boot)