1. 程式人生 > >Spring boot專案打包部署到伺服器

Spring boot專案打包部署到伺服器

為什麼要把SpringBoot打成war包

正常情況下SpringBoot專案是以jar包的形式,通過命令列:

java -jar demo.jar
  •  

來執行的,並且SpringBoot是內嵌Tomcat伺服器,所以每次重新啟動都是用的新的Tomcat伺服器。正因如此,也出現了一個問題: 
上傳到專案的檔案,如果是儲存在專案中的,那麼重啟過後檔案就會丟失。比如我們上傳了一個頭像,重啟專案後,這個頭像就沒了。而如果將檔案儲存在本地磁碟中的話,html中標籤沒辦法獲取。因此,我們才需要將SpringBoot專案打成war包,放到Tomcat中去執行。

修改方法

在pom.xml檔案中新增下面的依賴:

 <!--因配置外部TOMCAT 而配置-->
<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>
  •  

同時,將pom.xml檔案首部的jar改成war

    <groupId>com.star</groupId>
    <artifactId>yiyong</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>
    <!--<packaging>jar</packaging>-->
  •  

最後,將啟動類從

@SpringBootApplication
public class YiyongApplication {
    public static void main(String[] args) {
        SpringApplication.run(YiyongApplication.class, args);
    }
}
  •  

修改為

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


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

注意:該類繼承了SpringBootServletInitializer並且重寫了configure方法,這是關鍵所在。

打包部署

滑鼠右擊專案-->Maven build 

然後把target目錄下的war包放到tomcat的webapps目錄下,啟動tomcat,即可自動解壓部署。 


最後在瀏覽器中輸入

http://localhost:[埠號]/[打包專案名]/
  •  

釋出成功