spring boot应用部署至外部容器的相关配置

当我们需要将spring boot应用部署至外部tomcat(或其他web容器)时,相关配置需作如下调整。

1.通过spring-boot-maven-plugin插件指定启动类,该类详见第3步。

    org.springframework.boot
    spring-boot-maven-plugin
    
        com.sam.demo.bootstrap.AppStart
    

2.为了正常编译,需在pom.xml文件中引入spring-boot-starter-tomcat和spring-boot-starter-tomcat,绑定到provided,同时在spring-boot-starter-web中排除tomcat依赖。最终生成的war包不包含任何与tomcat有关的jar包。可以将生成的war包部署至任何支持java web的容器中。

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


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


    org.apache.tomcat
    tomcat-servlet-api
    7.0.68
    provided

3.修改spring-boot-maven-plugin插件指定的启动类。不再以main方法启动项目,而是通过SpringApplicationBuilder来指定启动类。
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.support.SpringBootServletInitializer;

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

附:因为项目中不再有web.xml文件,所以在eclipse中会有错误提示。解决办法是在pom.xml中加入maven-war-plugin插件。如下:


    org.apache.maven.plugins
    maven-war-plugin
    
        false
    

你可能感兴趣的:(spring boot应用部署至外部容器的相关配置)