springboot war包 在tomcat中運行啟動兩次的解決

tomcat配置條件

1、首先進(jìn)入tomcat的conf文件夾,對server.xml配置端口號,兩個原則,一個是當(dāng)前的端口號沒有被其他的鎖占用,另一個對外暴露的服務(wù)的端口號和springboot對外要暴露的端口號是一致的。

2、移除tomcat的webapps下面的相關(guān)的自帶的項目文件

springboot項目注意事項

1、springboot自帶的tomcat需要在編譯的時候移除,maven提供如下的一種方法:

      <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>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <scope>provided</scope>
        </dependency>

另外需要在pom文件中加入插件依賴

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

項目需要打成war包的形式

<packaging>war</packaging>  

2、Springboot項目啟動的類不變,如下的一種:

@SpringBootApplication
public class ZyzhBackStageWebApplication {

    public static void main(String[] args) {
        SpringApplication.run(ZyzhBackStageWebApplication.class, args);
    }

}

同時創(chuàng)建另外一個類

import org.springframework.boot.builder.SpringApplicationBuilder;

import org.springframework.boot.web.support.SpringBootServletInitializer;

public class ServletInitializer extends SpringBootServletInitializer {

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

}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容