一篇文章帶你搞定SpringBoot中的熱部署devtools方法
一、前期配置
創(chuàng)建項(xiàng)目時(shí),需要加入 DevTools 依賴

二、測(cè)試使用
(1)建立 HelloController
@RestController
public class HelloController {
@GetMapping("/hello")
public String hello(){
return "hello devtools";
}
}

對(duì)其進(jìn)行修改:然后不用重新運(yùn)行,重新構(gòu)建即可:只加載變化的類(lèi)

三、熱部署的原理
Spring Boot 中熱部署最最關(guān)鍵的原理就是兩個(gè)不同的 classloader:
- base classloader
- restart classloader
其中 base classloader 用來(lái)加載那些不會(huì)變化的類(lèi),例如各種第三方依賴,而 restart classloader 則用來(lái)加載那些會(huì)發(fā)生變化的類(lèi),例如你自己寫(xiě)的代碼。
Spring Boot 中熱部署的原理就是當(dāng)代碼發(fā)生變化時(shí),base classloader 不變,而 restart classloader 則會(huì)被廢棄,被另一個(gè)新的 restart classloader 代替。在整個(gè)過(guò)程中,因?yàn)橹恢匦录虞d了變化的類(lèi),所以啟動(dòng)速度要被重啟快。
需要注意,使用devtools,默認(rèn)情況下當(dāng)靜態(tài)資源發(fā)生變化時(shí),并不會(huì)觸發(fā)項(xiàng)目重啟
到此這篇關(guān)于一篇文章帶你搞定SpringBoot中的熱部署devtools方法的文章就介紹到這了,更多相關(guān)SpringBoot 熱部署devtools內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- SpringBoot+devtools實(shí)現(xiàn)熱部署的示例代碼
- SpringBoot3使用devtools實(shí)現(xiàn)代碼熱部署的詳細(xì)步驟
- SpringBoot使用DevTools實(shí)現(xiàn)后端熱部署的過(guò)程詳解
- springBoot 插件工具熱部署 Devtools的步驟詳解
- SpringBoot2.X Devtools熱部署實(shí)現(xiàn)解析
- Springboot項(xiàng)目基于Devtools實(shí)現(xiàn)熱部署步驟詳解
- SpringBoot實(shí)現(xiàn)devtools實(shí)現(xiàn)熱部署過(guò)程解析
- Springboot+devtools配置熱部署過(guò)程
相關(guān)文章
Spring中常見(jiàn)的7種BeanDefinition詳解
在?Spring?容器中,我們廣泛使用的是一個(gè)一個(gè)的?Bean,BeanDefinition?從名字上就可以看出是關(guān)于?Bean?的定義,下面就跟隨小編一起深入了解一下常見(jiàn)的7中BeanDefinition吧2023-09-09
jdk-logging?log4j?logback日志系統(tǒng)實(shí)現(xiàn)機(jī)制原理介紹
這篇文章主要介紹了jdk-logging、log4j、logback日志介紹以及三個(gè)日志系統(tǒng)的實(shí)現(xiàn)機(jī)制,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-03-03
TransmittableThreadLocal解決線程間上下文傳遞煩惱
這篇文章主要為大家介紹了TransmittableThreadLocal解決線程間上下文傳遞煩惱詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11
java 實(shí)現(xiàn)單鏈表逆轉(zhuǎn)詳解及實(shí)例代碼
這篇文章主要介紹了java 實(shí)現(xiàn)單鏈表逆轉(zhuǎn)實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下2017-02-02

