Spring Boot 打包與熱部署的操作方法
熱部署
Spring Boot提供了DevTool。直接在pom.xml文件中添加配置。
1.添加依賴
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> </dependency>
2.在maven插件依賴中新增
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <!--添加fork--> <configuration> <fork>true</fork> </configuration> </plugin> </plugins> </build>
提示:再使用Idea快捷創(chuàng)建Spring Boot項目時可以勾選Spring Boot DevTools選擇即可。
3.修改Idea設(shè)置


注意:這里要用Idea的debug啟動,debug啟動,debug啟動。
如果不是前后端分離的項目,在配置文件中添加配置,spring.thymeleaf.cache=false關(guān)閉頁面緩存。
jar包




選中maven,點擊運行。
控制臺輸出日志:

打的jar包在項目目錄的target目錄中。
Windows下運行:

進入jar包目錄,執(zhí)行 java -jar 包名

運行成功。
擴展:
如果打好了jar包,配置文件中的一些參數(shù)需要修改。如果不想重新打jar包??梢灾匦掳岩环菪碌?code>application.yml配置文件與打好的jar包放在同級目錄。重新運行即可。
驗證:
從上述日志中看到,端口為80。這里我重新復制一份配置文件,將端口改為8088。重新運行查看端口。


這里是在Windows下運行,在Linux下運行差不多,
我們先把jar包,配置文件(可選)上傳至服務(wù)器,運行。

啊咧,80端口已經(jīng)被項目占用了。

重新上傳一份8088端口的配置文件。

驗證成功以后,還有一個問題,無論是Windows窗口還是Linux窗口運行的jar包,窗口關(guān)閉以后,項目進程就結(jié)束了。但是你窗口不會一直開著。
在Linux下我們需要后臺運行。
nohup java -jar springboot-demo2-0.0.1-SNAPSHOT.jar >> srpingboot.log &
解釋:后臺運行SpringBoot的jar包,并將運行java -jar springboot-demo2-0.0.1-SNAPSHOT.jar命令的輸出日志追加輸出到springboot.log文件中。
劃重點:
- >> 輸出到文件,追加操作。
- > 輸出到文件,覆蓋操作。
- & 在Linux命令的末尾加上一個 & 號,將這個任務(wù)放到后臺去執(zhí)行
- nohup no hang up(不掛起),用于在系統(tǒng)后臺不掛斷地運行命令,退出終端不會影響程序的運行。
- 這些都是一些Linux命令,可以自己敲一敲測試即可。
后臺運行,如何關(guān)閉?直接kill。kill -9 pid(運行項目進程的PID)
war包
SpringBoot不推薦打war包,但是你說我頭鐵,非要打war包咧?可!
修改pom.xml
<!-- 將jar改成war,如果沒有,則添加--> <packaging>war</packaging>
<!-- 新增 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <!-- 打包運行時,排除 --> <scope>provided</scope> </dependency>
注意這兩處的節(jié)點位置。
修改啟動類
此時啟動類中的main方法已經(jīng)失效了。以測試項目為例
@SpringBootApplication
@MapperScan("com.demo.dao")
public class SpringbootDemo2Application extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(SpringbootDemo2Application.class);
}
public static void main(String[] args) {
SpringApplication.run(SpringbootDemo2Application.class, args);
}
}
繼承SpringBootServletInitializer類并重寫configure方法。注意方法體的書寫。
接下來就繼續(xù)使用maven打包即可。參數(shù)上面打jar的使用maven方式。
打好的war包是需要放在容器中執(zhí)行的,簡單的就放在Tomcat中的webapps目錄中。啟動Tomcat即可。

war包已經(jīng)打好了,直接丟Tomcat了。

啟動Tomcat即可。
但是在實際開發(fā)中,還是不推薦打war包。
到此這篇關(guān)于Spring Boot 打包與熱部署的操作方法的文章就介紹到這了,更多相關(guān)Spring Boot 打包與熱部署內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java Synchronize下的volatile關(guān)鍵字詳解
這篇文章主要介紹了Java Synchronize下的volatile關(guān)鍵字詳解,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-03-03
Java Kafka分區(qū)發(fā)送及消費實戰(zhàn)
本文主要介紹了Kafka分區(qū)發(fā)送及消費實戰(zhàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-07-07
SpringBoot+TestNG單元測試的實現(xiàn)
本文主要介紹了SpringBoot+TestNG單元測試的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-07-07
SpringBoot數(shù)據(jù)訪問的實現(xiàn)
本文主要介紹了SpringBoot數(shù)據(jù)訪問的實現(xiàn),引入各種xxxTemplate,xxxRepository來簡化我們對數(shù)據(jù)訪問層的操作,感興趣的可以了解一下2023-11-11
SpringBoot接收LocalDateTime參數(shù)的方式
這篇文章主要介紹了SpringBoot接收LocalDateTime參數(shù)的方式,本文通過實例代碼給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧2024-08-08

