zoukankan      html  css  js  c++  java
  • springboot如何使用外部tomcat容器

    //https://www.cnblogs.com/wzk-0000/p/9505265.html

    spring-boot-starter-web是自带tomcat(即springboot内嵌tomcat),所以打包直接生成jar包,用java -jar命令就可以启动。

    但,有时我们希望用war格式的包,而不是jar格式的包。这就需要以下几步改造:

    1.将项目的启动类Application.java继承SpringBootServletInitializer并重写configure方法

    复制代码
     1 @SpringBootApplication
     2     public class Application extends SpringBootServletInitializer {
     3 
     4         @Override
     5         protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
     6             return application.sources(Application.class);
     7         }
     8 
     9         public static void main(String[] args) throws Exception {
    10             SpringApplication.run(Application.class, args);
    11         }
    12     }
    复制代码

    2.在pom.xml文件中,project下面增加package标签

    1
    <packaging>war</packaging>

    3.还是在pom.xml文件中,dependencies下面添加

    1
    2
    3
    4
    5
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope>
    </dependency>

    注:<scope>provided</scope>表示在编译和测试时使用(不加它,打的包中会指定tomcat,用tomcat部署时会因tomcat版本报错;而加上它,打包时不会把内置的tomcat打进去)

    还要注意:spring-boot项目使用的jdk版本要和tomcat的jdk版本一致(都是1.8);tomcat的lib中el-api.jar版本最好要是javax.el-api-3.0.0.jar版本,防止低版本冲突。

    只需要以上3步就可以打包成war包,并且部署到tomcat中了。需要注意的是这样部署的request url需要在端口后加上项目的名字才能正常访问

    spring-boot更加强大的一点就是:即便项目是以上配置,依然可以用内嵌的tomcat来调试,启动命令和以前没变

  • 相关阅读:
    KMP算法代码实现记录
    冒泡,插入,希尔,快速,归并,桶排序,堆排序算法汇总实现
    回溯法个人理解记录(C#八皇后)
    C#创建初始化链表的方式(个人目前写出3种创建的方式)
    算法汇总代表性学习记录
    C#集合去重
    C#获取数组/字符串的k个字符的全部组合
    pl/sql简单执行记录个人学习记录
    oracle为什么尽量不要使用外键的最好理解
    PickerController 添加照片---iOS
  • 原文地址:https://www.cnblogs.com/zouhong/p/11664427.html
Copyright © 2011-2022 走看看