zoukankan      html  css  js  c++  java
  • springboot 部署到外部的tomcat

    转载 http://blog.csdn.net/qq_28988969/article/details/78135768

    尽管Spring Boot项目会内置一个tomcat,仅只需通过一个简单的指令便可启动项目,但在生产环境下,我们还是习惯将项目发布到第三外的servlet容器中,下面将介绍如果将一个Spring Boot项目部署到第三方tomcat中运行。

    1)修改工程的打包方式为war

    这里写图片描述

    2)将spring-boot-starter-tomcat的范围设置为provided

    spring-boot-starter-tomcat是Spring Boot默认就会配置的,即上面说到的内嵌tomcat,将其设置为provided是在打包时会将该包(依赖)排除,因为要放到独立的tomcat中运行,Spring Boot内嵌的Tomcat是不需要用到的。

    <!--spring boot tomcat(默认可以不用配置,但当需要把当前web应用布置到外部servlet容器时就需要配置,并将scope配置为provided)-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
    <!-- 这个范围不要加,加上这个外部的tomcat没问题,但是发开的时候,不能跑起来 --> <!--<scope>provided</scope>--> </dependency>
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    3)修改代码,设置启动配置

    需要继承SpringBootServletInitializer,并重写configure()方法,将Spring Boot的入口类设置进去。

    // 若要部署到外部servlet容器,需要继承SpringBootServletInitializer并重写configure()
    @SpringBootApplication
    public class AhutApplication extends SpringBootServletInitializer{
    
        @Override
        protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
            // 设置启动类,用于独立tomcat运行的入口
            return builder.sources(MyWebApplication.class);
        }
    
    }
    或者

    新增ServletInitializer类

    import org.springframework.boot.builder.SpringApplicationBuilder;

    import org.springframework.boot.context.web.SpringBootServletInitializer;  
    
    public class ServletInitializer extends SpringBootServletInitializer {  
    
        @Override  
        protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {  
            return application.sources(Application.class);  
        }  
    
    }  

    4)打war包并部署到tomcat

    选中项目,右键 > export

    这里写图片描述

    idea 发布项目:

  • 相关阅读:
    HDU 5818 Joint Stacks (优先队列)
    POJ 3169 Layout (差分约束系统)
    HDU 4370 0 or 1 (最短路+最小环)
    LightOJ 1074 Extended Traffic (最短路spfa+标记负环点)
    HDU 1142 A Walk Through the Forest (求最短路条数)
    力扣71——简化路径
    力扣73——矩阵置零
    ThreadLocal的进化——TransmittableThreadLocal
    ThreadLocal的进化——InheritableThreadLocal
    Java——内部类详解
  • 原文地址:https://www.cnblogs.com/wu-fm/p/8442066.html
Copyright © 2011-2022 走看看