将SpringBoot打包成war包

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

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

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

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

  
  
      org.springframework.boot
      spring-boot-starter-tomcat
      provided
  

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

  cn.demo
  demo
  0.0.1-SNAPSHOT
  war
  

最后,将启动类从

@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:[端口号]/[打包项目名]/

完成!!谢谢观赏。

你可能感兴趣的:(将SpringBoot打包成war包)