当前位置: 首页 > news >正文

SpringBoot之打成war包部署到Tomcat

    正常情况下SpringBoot项目是以jar包的形式,正常情况下SpringBoot项目是以jar包的形式,并且SpringBoot是内嵌Tomcat服务器,所以每次重新启动都是用的新的Tomcat服务器。正因如此,也出现了一个问题:
    上传到项目的文件,如果是保存在项目中的,那么重启过后文件就会丢失。比如我们上传了一个头像,重启项目后,这个头像就没了。而如果将文件保存在本地磁盘中的话,html中标签没办法获取(当然,企业项目中一般是有专门的图片服务器的)。因此,我们才需要将SpringBoot项目打成war包,放到Tomcat中去运行。
SpringBoot打成war包部署到tomcat只需5步,这里以上一章节的SpringBootSwagger项目为demo。

一、修改打包形式
在pom.xml里设置 <packaging>war</packaging>

二、移除嵌入式tomcat插件
在pom.xml里找到spring-boot-starter-web依赖节点,在其中添加如下代码。

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                      <exclusion>
                          <groupId>org.springframework.boot</groupId>
                       <artifactId>spring-boot-starter-tomcat</artifactId>
                     </exclusion>
                  </exclusions>
        </dependency>

三、添加servlet-api的依赖
下面两种方式都可以,任选其一,这里使用的是第一种。

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <scope>provided</scope>
        </dependency>
       <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-servlet-api</artifactId>
            <version>8.0.36</version>
            <scope>provided</scope>
        </dependency>

四、修改启动类,并重写初始化方法
该类继承了SpringBootServletInitializer并且重写了configure方法。

package com.example.demo;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

@SpringBootApplication
@MapperScan("com.example.mapper")
public class SpringBootSwaggerApplication extends SpringBootServletInitializer{

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

    public static void main(String[] args) {
        SpringApplication.run(SpringBootSwaggerApplication.class, args);
    }

}

五、打包部署
在项目根目录下(即包含pom.xml的目录),在命令行里输入: mvn clean package即可, 等待打包完成,出现[INFO] BUILD SUCCESS即为打包成功。然后把target目录下的war包放到tomcat的webapps目录下,启动tomcat,即可自动解压部署。 最后在浏览器中输入http://localhost:[端口号]/[打包项目名]/

参考:https://blog.csdn.net/zhoucheng05_13/article/details/77915294

转载于:https://www.cnblogs.com/5ishare/p/10228918.html

相关文章:

  • 基本数据类型中的浮点类型
  • MyBaits 常见面试题
  • 洛谷p1072 gcd,质因数分解
  • 大结局---Miracl库下完全实现SM2加密算法
  • php封装生成随机数函数
  • 洛谷P3372 【模板】线段树 1
  • python3 练习题100例 (二十九)猴子吃桃问题
  • Floyd判断环算法总结
  • freemarker导出定制excel
  • [bzoj1324]Exca王者之剑_最小割
  • Spring Boot 学习笔记(二)第一个 Spring boot 程序
  • 计算机的门电路和加减乘除
  • WPF入门(四)-线形区域Path内容填充之渐变色(LinearGradientBrush)
  • flask请求流程
  • 浅谈贝叶斯公式
  • 「面试题」如何实现一个圣杯布局?
  • 【407天】跃迁之路——程序员高效学习方法论探索系列(实验阶段164-2018.03.19)...
  • 【css3】浏览器内核及其兼容性
  • Angular 4.x 动态创建组件
  • Bootstrap JS插件Alert源码分析
  • es6
  • ES6--对象的扩展
  • express.js的介绍及使用
  • Git学习与使用心得(1)—— 初始化
  • Lucene解析 - 基本概念
  • Mysql5.6主从复制
  • React 快速上手 - 06 容器组件、展示组件、操作组件
  • Redis 懒删除(lazy free)简史
  • SpringCloud(第 039 篇)链接Mysql数据库,通过JpaRepository编写数据库访问
  • SQLServer之创建显式事务
  • 阿里云前端周刊 - 第 26 期
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 大数据与云计算学习:数据分析(二)
  • 聊聊hikari连接池的leakDetectionThreshold
  • 如何胜任知名企业的商业数据分析师?
  • 如何优雅地使用 Sublime Text
  • 无服务器化是企业 IT 架构的未来吗?
  • 小程序 setData 学问多
  • kubernetes资源对象--ingress
  • ​configparser --- 配置文件解析器​
  • #[Composer学习笔记]Part1:安装composer并通过composer创建一个项目
  • #Linux(权限管理)
  • (2)nginx 安装、启停
  • (4)logging(日志模块)
  • (day 2)JavaScript学习笔记(基础之变量、常量和注释)
  • (delphi11最新学习资料) Object Pascal 学习笔记---第7章第3节(封装和窗体)
  • (ibm)Java 语言的 XPath API
  • (react踩过的坑)antd 如何同时获取一个select 的value和 label值
  • (Redis使用系列) SpringBoot中Redis的RedisConfig 二
  • (非本人原创)史记·柴静列传(r4笔记第65天)
  • (三)docker:Dockerfile构建容器运行jar包
  • (一)Thymeleaf用法——Thymeleaf简介
  • (一)认识微服务
  • (转)http-server应用
  • ******之网络***——物理***