Spring Boot支持Tomcat、Jetty和Undertow三种Servlet容器嵌入到Web应用程序中,开发者使用starter即可方便嵌入,默认情况下,嵌入服务器的访问端口为8080。这些组件可以同组件扫描注册,即把他们定义为Spring Bean。默认情况下,如果只有一个servlet,则把它映射到/;如果有多个servlet,则加上bean name作为前缀然后映射到/*。如果默认策略不能满足你,你可以通过ServletRegistrationBean、FilterRegistrationBean和ServletListenerRegistrationBean来完全控制。嵌入式容器不会直接执行Servlet 3.0+ javax.servlet.ServletContainerInitializer或org.springframework.web.WebApplicationInitializer,这是故意为之,是为了防止第三方包程序破坏Spring Boot应用程序。如果你需要执行容器初始化,可以通过实现注册一个org.springframework.web.WebApplicationInitializer Bean。这个接口只有一个方法onStartup,这个方法可以访问ServletContext。当使用嵌入式容器时,可以通过@ServeltComponentScan启用@WebServlet,@WebFilter和@WebListener注解。ServletWebApplicationContext是一个特殊的WebApplicationContext,主要用于嵌入式Servelt。支持的普通配置:

Spring Boot如何支持嵌入式Servlet容器