SpringBoot攻略九、使用外部tomcat启动

1、pom.xml修改如下:

    war

    
    
            org.springframework.boot
            spring-boot-starter-tomcat
            provided
    
    
        org.apache.tomcat.embed
        tomcat-embed-jasper
        provided
    

2、启动类Application继承SpringBootServletInitializer
覆盖方法:

    @Override
    protected SpringApplicationBuilder  configure(SpringApplicationBuilder builder) {
        
        return builder.sources(Application.class);
    }

我们一起来了解一下其中的原理

根据Servlet3.0规范,web应用启动时会实例化每个jar包中的ServletContainerInitializer提供者(SPI)。实现了ServletContainerInitializer的jar包会在META-INF/services目录下维护一个文件javax.servlet.ServletContainerInitializer,其内容指向ServletContainerInitializer的实现类。如spring-web中:


看看SpringServletContainerInitializer做了哪些事情:



@HandlesTypes注解表示SpringServletContainerInitializer能处理的类型。

SpringBootServletInitializer实现了WebApplicationInitializer




你可能感兴趣的:(SpringBoot攻略九、使用外部tomcat启动)