Spring Boot之使用外部tomcat

 一般在生产环境都会部署在外部的web容器,比如我们公司就部署在WildFly。想这么做就要改一些配置

一  启动类的修改

public class Application extends SpringBootServletInitializer {
    private static final Logger appLogger = LoggerFactory.getLogger(Application.class);

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(Application.class);
    }

    public static void main(String[] args) {
        if (appLogger.isInfoEnabled()) {
            appLogger.info("snrs-web start.");
        }

        SpringApplication sa = new SpringApplication(Application.class);
        sa.setWebEnvironment(true);
        sa.run(args);
    }
}

   比如继承  SpringBootServletInitializer  同时实现方法 configure

二 pom文件的修改

  对于SpringBoot1版本要排除内置的tomcat

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.apache.tomcat.embed</groupId>
                    <artifactId>tomcat-embed-websocket</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

SpringBoot2的写法是

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <!-- 移除嵌入式tomcat插件 -->
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<!--添加servlet-api依赖--->
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.1.0</version>
    <scope>provided</scope>//表示使用JBoss或者Tomcat自带的jar
</dependency>

  同时要增加对各个环境打包的配置

  

<profiles>
        <profile>
            <id>dev</id>

            <properties>
                <package>jar</package>
            </properties>

            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>

            <build>
                <filters>
                    <filter>src/main/filters/filter-dev.properties</filter>
                </filters>
            </build>
        </profile>
                
                <profile>
            <id>prd</id>

            <properties>
                <package>war</package>
            </properties>

            <build>
                <filters>
                    <filter>src/main/filters/filter-prod.properties</filter>
                </filters>
                <resources>
                    <resource>
                        <directory>src/main/resources</directory>
                        <filtering>true</filtering>
                        <excludes>
                            <exclude>rsf.consumer.xml</exclude>
                            <exclude>rsf.provider.xml</exclude>
                            <exclude>application.properties</exclude>
                        </excludes>
                    </resource>
                </resources>
            </build>
        </profile>
    </profiles>

 

  

posted on 2020-12-24 17:41  MaXianZhe  阅读(532)  评论(0编辑  收藏  举报

导航