暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

SpringBoot应用War包形式部署到外部Tomcat

dalaoyang 2018-08-15
213

这一篇文章介绍SpringBoot应用修改默认打jar形式部署为打war包形式,部署到外部Tomcat。

SpringBoot应用默认打包成为可执行jar模式让我们感觉到部署的便捷,接下来给大家介绍一下SpringBoot项目打War包形式部署到外部Tomcat。

修改原有项目

1.修改项目

打开项目,修改pom文件:
1.项目中加入spring-boot-starter-web(如果是已经加入该依赖的项目可以忽略)和spring-boot-starter-tomcat依赖。 2.packaging由jar修改为war。 3.在build内加入finalName,这个是设置打war包名称,可以不设置使用默认的。

完整pom文件如下:

  1. <?xml version="1.0" encoding="UTF-8"?>

  2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

  3.         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

  4.    <modelVersion>4.0.0</modelVersion>


  5.    <groupId>com.dalaoyang</groupId>

  6.    <artifactId>springboot_tomcat</artifactId>

  7.    <version>0.0.1-SNAPSHOT</version>

  8.    <packaging>war</packaging>


  9.    <name>springboot_tomcat</name>

  10.    <description>springboot_tomcat</description>


  11.    <parent>

  12.        <groupId>org.springframework.boot</groupId>

  13.        <artifactId>spring-boot-starter-parent</artifactId>

  14.        <version>1.5.15.RELEASE</version>

  15.        <relativePath/> <!-- lookup parent from repository -->

  16.    </parent>


  17.    <properties>

  18.        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

  19.        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

  20.        <java.version>1.8</java.version>

  21.    </properties>


  22.    <dependencies>

  23.        <dependency>

  24.            <groupId>org.springframework.boot</groupId>

  25.            <artifactId>spring-boot-starter-web</artifactId>

  26.        </dependency>


  27.        <dependency>

  28.            <groupId>org.springframework.boot</groupId>

  29.            <artifactId>spring-boot-devtools</artifactId>

  30.            <scope>runtime</scope>

  31.        </dependency>

  32.        <dependency>

  33.            <groupId>org.springframework.boot</groupId>

  34.            <artifactId>spring-boot-starter-tomcat</artifactId>

  35.            <scope>provided</scope>

  36.        </dependency>

  37.        <dependency>

  38.            <groupId>org.springframework.boot</groupId>

  39.            <artifactId>spring-boot-starter-test</artifactId>

  40.            <scope>test</scope>

  41.        </dependency>

  42.    </dependencies>


  43.    <build>

  44.        <plugins>

  45.            <plugin>

  46.                <groupId>org.springframework.boot</groupId>

  47.                <artifactId>spring-boot-maven-plugin</artifactId>

  48.            </plugin>

  49.        </plugins>

  50.        <finalName>springboot_tomcat</finalName>

  51.    </build>



  52. </project>

修改启动类,使其继承SpringBootServletInitializer类,重写configure方法,代码如下:

  1. package com.dalaoyang;


  2. import org.springframework.boot.SpringApplication;

  3. import org.springframework.boot.autoconfigure.SpringBootApplication;

  4. import org.springframework.boot.builder.SpringApplicationBuilder;

  5. import org.springframework.boot.web.support.SpringBootServletInitializer;


  6. @SpringBootApplication

  7. public class SpringbootTomcatApplication  extends SpringBootServletInitializer {


  8.    public static void main(String[] args) {

  9.        SpringApplication.run(SpringbootTomcatApplication.class, args);

  10.    }


  11.    @Override

  12.    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {

  13.        return application.sources(SpringbootTomcatApplication.class);

  14.    }

  15. }

新建一个Controller,作为测试,代码如下:

  1. package com.dalaoyang;


  2. import org.springframework.web.bind.annotation.GetMapping;

  3. import org.springframework.web.bind.annotation.RestController;


  4. /**

  5. * @author dalaoyang

  6. * @project springboot_learn

  7. * @package com.dalaoyang

  8. * @email yangyang@dalaoyang.cn

  9. * @date 2018/8/1

  10. */

  11. @RestController

  12. public class Controller  {


  13.    @GetMapping("/")

  14.    public String index(){

  15.        return "Hello , dalaoyang ";

  16.    }

  17. }

启动项目,本地访问http://localhost:8080/,如图:

打包部署

接下来我们只需要将项目打包部署到tomcat测试,本文以Idea打包为例,双击package,如图:

观看控制台,等待打包完成,如图。

将war包复制到tomcat的webapp目录下,运行tomcat,如图所示,tomcat启动成功(注意tomcat端口不要和目前启动端口冲突)。

使用浏览器访问http://localhost:8080/springboot_tomcat/,结果如图:

新建项目,直接以War形式。

新建项目

修改Packaging为War,如图

依赖只加入一个Web依赖,如图

一路next到底即可,然后打开项目发现,选择war模式后已经自动为我们集成了spring-boot-starter-tomcat依赖,而且已经为新建了一个ServletInitializer自动继承了SpringBootServletInitializer并且重写了configure,感谢我们强大的Ide,测试下去和上面的情况也是一样可以成功的。

源码下载 :大老杨码云


文章转载自dalaoyang,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论