为什么要把SpringBoot打成war包

正常情况下SpringBoot项目是以jar包的形式,通过命令行:

java -jar demo.jar

来运行的,并且SpringBoot是内嵌Tomcat服务器,所以每次重新启动都是用的新的Tomcat服务器。正因如此,也出现了一个问题: 
上传到项目的文件,如果是保存在项目中的,那么重启过后文件就会丢失。比如我们上传了一个头像,重启项目后,这个头像就没了。而如果将文件保存在本地磁盘中的话,html中标签没办法获取。因此,我们才需要将SpringBoot项目打成war包,放到Tomcat中去运行。

修改方法

在pom.xml文件中添加下面的依赖:

 <!--因配置外部TOMCAT 而配置-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

同时,将pom.xml文件首部的jar改成war

    <groupId>com.star</groupId>
<artifactId>yiyong</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<!--<packaging>jar</packaging>-->
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

最后,将启动类从

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

修改为

@SpringBootApplication
public class YiyongApplication extends SpringBootServletInitializer{
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(YiyongApplication.class);
} public static void main(String[] args) {
SpringApplication.run(YiyongApplication.class, args);
}
}

注意:该类继承了SpringBootServletInitializer并且重写了configure方法,这是关键所在。

打包部署

在IDEA右侧Maven栏双击package等待Build Success即可。 
 
然后把target目录下的war包放到tomcat的webapps目录下,启动tomcat,即可自动解压部署。 
最后在浏览器中输入

http://localhost:[端口号]/[打包项目名]/

发布成功

如何将一个SpringBoot简便地打成一个war包(转)的更多相关文章

  1. 如何将一个SpringBoot简便地打成一个war包(亲测有效)

    正常情况下SpringBoot项目是以jar包的形式,通过命令行: 来运行的,并且SpringBoot是内嵌Tomcat服务器,所以每次重新启动都是用的新的Tomcat服务器.正因如此,也出现了一个问 ...

  2. SpringBoot简便地打成一个war包

    正常情况下SpringBoot项目是以jar包的形式,通过命令行: java -jar demo.jar 来运行的,并且SpringBoot是内嵌Tomcat服务器,所以每次重新启动都是用的新的Tom ...

  3. SpringBoot项目打成一个war包

    springboot 带有内置Tomcat 服务器,可以直接将项目打包成jar运行,运行命令为: java -jar demo.jar 但是如果在需要把项目达成war包该怎么办呢?下面是将spring ...

  4. Springboot中,Tomcat启动war包的流程

    将一个SpringBoot项目,打成war包 <!-- 1. 修改POM依赖 --> <dependency> <groupId>org.springframewo ...

  5. Maven将代码及依赖打成一个Jar包的方式

    Maven可以使用mvn package指令对项目进行打包,如果使用java -jar xxx.jar执行运行jar文件,会出现"no main manifest attribute, in ...

  6. springboot多模块项目打war包

    一.父模块配置 1,指定pakaging:pom 2,指定编译的版本:如下图: <properties> <project.build.sourceEncoding>UTF-8 ...

  7. springboot项目打包成jar/war包

    springboot项目打包过程中包含第三方jar 开发IDE是IntelliJ IDEA,数据库是mysql,内置服务器tomcat. 打包步骤: 1. 确定项目调试运行没问题 2. 将第三方jar ...

  8. linux下springboot项目通过jetty发布war包应用

    Linux下jetty发布jar包 1.通过官网下载jetty点击下载https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-distributi ...

  9. springboot项目如何打包成war包

    一.修改打包形式 在pom.xml里设置 <packaging>war</packaging> 二.移除嵌入式tomcat插件 在pom.xml里找到spring-boot-s ...

随机推荐

  1. JMeter—断言

    断言用来对服务器的响应数据做验证,常用的断言是响应断言,支持正则表达式. 一.BeanShell Assertion 用来访问JMeter的属性: log对象,可以利用此对象写日志 SampleRes ...

  2. 2019.2.15 t3 平均值

    #include <cstdio> #include <iostream> #include <cstring> #include <cmath> #i ...

  3. Cors Http 访问控制

    https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Access_control_CORS

  4. 《软件工程综合实践专题》第三次作业——原型工具Axure RP8 的介绍

    一.为什么使用Axure Axure RP是一个专业的快速原型设计工具. Axure RP已被一些大公司采用.Axure RP的使用者主要包括商业分析师.信息架构师.可用性专家.产品经理.IT咨询师. ...

  5. [BZOJ 4890][TJOI2017]城市

    传送门 $ \color{green} {solution : }$ 我们可以暴力枚举断边,然后 $ O(n) $ 的跑一次换根 $ dp $,然后复杂度是 $ O(n * n) $ 的 #inclu ...

  6. [蓝桥杯][2015年第六届真题]机器人塔(dfs)

    题目描述 X星球的机器人表演拉拉队有两种服装,A和B. 他们这次表演的是搭机器人塔. 类似:      A     B B    A B A   A A B B  B B B A B A B A B ...

  7. 项目中git的使用

    通常一个项目的开发周期相对较长,为了便于对过程中的项目版本进行管理,以及方便多人合作进行开发,常需要使用到版本管理控制软件,本篇介绍常用的版本控制器git,记之共享. 一.git是什么?有何特点? 用 ...

  8. 剑指offer——面试题18:删除链表的节点

    #include"List.h" void DeleteNode(ListNode** pHead,ListNode* pToBeDeleted) { if(*pHead==nul ...

  9. zero-copy总结

    基本概念 零拷贝,通常在java NIO编程中会使用,比如netty网络工具包. 其真实意思是: 网卡或者其他外设进行io操作时不经过CPU, 而是直接和主memory交互,不经过CPU寄存器,这样可 ...

  10. ajax乱码的问题

    ajax 乱码情况与原因很多,本文只讲其中之一: 浏览器端正常的数据,用ajax提交到服务器上就乱码了. 当ajax的提交方式是get而不是post时,其所携带的数据不会被字符编码过滤器所拦截(事实上 ...