springboot1.5.19使用外置tomcat启动war

由于兼容的问题,项目使用的springboot版本不能太高,否则部分监控功能无法生效,而且使用的tomcat也是指定的封装版本,

想要使用war的方式启动,需要如下步骤:

1、首先,需要排除web项目中springboot内置的tomcat,

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

2、springboot入口的Application类,需要继承 SpringBootServletInitializer,然后重写其configure方法,指定source,示例如下:

@SpringBootApplication
public class MySpringBootApplication extends SpringBootServletInitializer { 

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

    public static void main(String[] args) {
        ConfigurableApplicationContext applicationContext =         
                         SpringApplication.run(SimulationProgrameApplication.class, args);
        System.out.println("---application started---");
    }

}

3、需要引入servlet-api的依赖,否则会报ServletException找不到的异常,这个jar中有我们常用的HttpServletRequest和   HttpServletResponse,由于只需要编译执行的时候用不需要打进war包(tomcat一般lib目录都有)所以scope设置为provided

        
            javax.servlet
            javax.servlet-api
            3.1.0
            
            provided
        

 

 

你可能感兴趣的:(spring)