将SpringBoot打包成war包

我们都知道,spring boot工程一般都打包成jar包的形式进行发布。

  java -jar demo.jar //IDEA中使用该命令进行打包

但是spring boot中内置的tomcat在每次程序启动的时候相当于一个新的tomcat,在项目有上传文件共能的时候将文件保存在tomcat中的话,每次重启的时候文件都会丢失。这个时候我们就需要将项目打包成war包进行外部tomcat的发布。

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

  <!--因配置外部TOMCAT 而配置-->
  <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-tomcat</artifactId>
      <scope>provided</scope>
  </dependency>

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

  <groupId>cn.demo</groupId>
  <artifactId>demo</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
  <!--<packaging>jar</packaging>-->

最后,将启动类从

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

修改为

@SpringBootApplication
public class DemoApplication extends SpringBootServletInitializer{
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(DemoApplication.class);
    }


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

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

最后在IDEA右侧的Maven栏中双击package等待Build Success即可,然后将项目中target中的war包放入tomcat中输入:http://localhost:[端口号]/[打包项目名]/

完成!!谢谢观赏。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容