springboot是如何在没有web.xml的情况下在外部tomcat启动的

本文探讨了SpringBoot如何在没有web.xml的情况下,在Servlet3.0规范支持的外部Tomcat中启动。关键在于ServletContainerInitializer接口和SPI机制。SpringServletContainerInitializer通过SPI被发现并调用,进而初始化WebApplicationInitializer。DispatcherServlet则负责接收并分发请求。
摘要由CSDN通过智能技术生成

最近在公司部署测试环境的时候遇到了问题,本地用springboot内嵌tomcat启动没有问题,部署到测试环境的外部tomcat就不加载,在咨询了同事之后在启动类上继承了SpringBootServletInitializer之后就没有了问题,但并没有深入去想。由于servlet的规范是要配置web.xml的,包括Struts2和spring都是要在web.xml配置的,有一天在服务器上看编译后的目标文件中居然没有web.xml,结合之前遇到的问题,就想知道springboot应用是如何在没有web.xml的情况下在tomcat启动的,于是就有了如下一篇文章。

概述

web.xml的模式文件是由Sun公司定义的,要用来配置Filter、Listener、Servlet等,先来回顾Spring Mvc的配置

<servlet>
    <servlet-name>spring</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:spring-servlet.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
​
<servlet-mapping>
    <servlet-name>spring</servlet-name>
    
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值