spirng boot的tomcat的嵌入 原理总结
SpringBoot 的启动是通过 new SpringApplication()实例来启动的,启动过程主要做如下几件事情:1. 配置属性2. 获取监听器,发布应用开始启动事件3. 初始化输入参数4. 配置环境,输出 banner5. 创建上下文6. 预处理上下文7. 刷新上下文8. 再刷新上下文9. 发布应用已经启动事件10. 发布应用启动完成事件
而启动 Tomcat 就是在第 7 步中“刷新上下文”;Tomcat 的启动主要是初始化 2 个核心组件,连接器(Connector)和容器(Container),一个 Tomcat 实例就是一个 Server,一个 Server 包含多个 Service,也就是多个应用程序,每个 Service 包含多个连接器(Connetor)和一个容器(Container),而容器下又有多个子容器,按照父子关系分别为:Engine,Host,Context,Wrapper,其中除了 Engine 外,其余的容器都是可以有多个。