Spring boot專案打包部署到伺服器
阿新 • • 發佈:2018-11-14
為什麼要把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:[埠號]/[打包專案名]/
釋出成功