SpringBoot編譯打包成war

springboot内置了Tomcat,要想不和服务器上的tomcat版本引起冲突,首先需要将springboot内置的tomcat依赖移除。

第一步:去除tomcat依赖并修改打包方式

将打包方式修改为war

war
去除tomcat依赖


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

   


或者

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

将tomcat依赖作用域设置为provided

 

第二步:修改启动文件,继承SpringBootServletInitializer

 

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

import java.util.Calendar;
import java.util.Date;

@SpringBootApplication
@ServletComponentScan
public class TrainsApplication extends SpringBootServletInitializer {

    public static void main(String[] args) {
        Logger logger= LoggerFactory.getLogger(ResponseUtil.PROJECT_NAME);
        Date begin=Calendar.getInstance().getTime();
        logger.debug("项目开始启动,开始时间{}。", begin);
        SpringApplication.run(TrainsApplication.class, args);
        logger.debug("项目成功启动,耗时{}毫秒。",Calendar.getInstance().getTime().getTime()-begin.getTime());
    }

    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        // 注意这里要指向原先用main方法执行的Application启动类
        return builder.sources(TrainsApplication.class);
    }


}

你可能感兴趣的:(Spring)