美文网首页
spring boot应用部署至外部容器的相关配置

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

作者: SamHxm | 来源:发表于2016-12-26 23:24 被阅读0次

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

    1.通过spring-boot-maven-plugin插件指定启动类,该类详见第3步。
    <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
        <configuration>
            <mainClass>com.sam.demo.bootstrap.AppStart</mainClass>
        </configuration>
    </plugin>
    
    2.为了正常编译,需在pom.xml文件中引入spring-boot-starter-tomcat和spring-boot-starter-tomcat,绑定到provided,同时在spring-boot-starter-web中排除tomcat依赖。最终生成的war包不包含任何与tomcat有关的jar包。可以将生成的war包部署至任何支持java web的容器中。
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-tomcat</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.tomcat</groupId>
        <artifactId>tomcat-servlet-api</artifactId>
        <version>7.0.68</version>
        <scope>provided</scope>
    </dependency>
    
    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插件。如下:

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <configuration>
            <failOnMissingWebXml>false</failOnMissingWebXml>
        </configuration>
    </plugin>

    相关文章

      网友评论

          本文标题:spring boot应用部署至外部容器的相关配置

          本文链接:https://www.haomeiwen.com/subject/acjsvttx.html