zoukankan      html  css  js  c++  java
  • 《springboot源码系列》——内置tomcat启动原理

      tomcat作为一个web容器,启动后可以监听指定端口号、接收http请求,然后对请求进行封装后转发到servlet代码中。一般mvc框架都会把请求自动映射到我们的controller上去。那么在springboot中、它是如何自动实现的呢。

    获取Autoconfiguration

      springboot项目默认开启了 @EnableAutoConfiguration 注解,里面 import 了 AutoConfigurationImportSelector 类,他会找到需要满足规范需要自动装配jar的所有AutoConfiguration配置。比如我这个项目引入的mybatis、redis,以及内置的 tomcat 等。

    构建WebServerFactory

       ServletWebServerFactoryAutoConfiguration 这个配置类就负责对webserver容器自动装配,springboot默认的容器是tomcat,所以它这里的webserver就是tomcat了。首先是通过配置文件 定制出了一个 webServerFactory。

    创建WebServer

      启动的时候,ServletWebServerApplicationContext 的 createWebServer 方法就是基于 tomcat 原生的api组装出一个webserver,然后调用 this.tomcat.start(); 启动容器,用来接收http请求。

    注册DispatcherServlet

      我们在使用springmvc的时候,所有的请求是交给 DispatcherServlet 处理的,我们会在web.xml配置需要被拦截的url。那么在 springboot 中肯定也有一个 DispatcherServletAutoConfiguration 的。这里首先就创建了一个 DispatcherServlet 的 Bean, 它是直接映射到 根路径。

      然后紧接着,就把 注册到了tomcat中,这样tomcat就能接收我们的请求了。

  • 相关阅读:
    git 入门操作
    ubuntu apc 安装
    vps mysql自动关闭
    xdebug安装
    C#获取IP和主机名
    C#在类中用调用Form的方法
    luogu3181 [HAOI2016]找相同字符
    luogu6139 【模板】广义后缀自动机(广义SAM)
    广义后缀自动机小结
    Codeforces Round #620 (Div. 2) 题解
  • 原文地址:https://www.cnblogs.com/wlwl/p/14969392.html
Copyright © 2011-2022 走看看