idea自動(dòng)加載html、js而無需重啟進(jìn)程的操作
遇到一些單體架構(gòu)的項(xiàng)目時(shí),由于前后端沒有分離導(dǎo)致每一次動(dòng)手前端都需要重啟進(jìn)程運(yùn)行項(xiàng)目,非常費(fèi)時(shí)費(fèi)力,因此只需要在idea中配置幾項(xiàng)就能解決這個(gè)問題:
1、快捷鍵Ctrl + Alt + S打開設(shè)置面板,build-compiler---勾選 Build project automatically選項(xiàng)(2016版本的idea有可能是:make project automatically)
2、快捷鍵Ctrl + Shift + A查找registry命令: 在查找到的registry命令通過鼠標(biāo)雙擊或敲回車鍵,在彈出的面板中找到并勾選compiler.automake.allow.when.app.running選項(xiàng)
補(bǔ)充知識(shí):解決IDEA下SpringBoot devtools熱啟動(dòng)熱部署、修改html或js代碼還要重新啟動(dòng)服務(wù)問題
其實(shí)并不難,百度上面一大把,但是按照他們這樣做還是不能實(shí)現(xiàn),因?yàn)槲乙婚_始接觸這個(gè)問題,用的idea springboot框架修改資源還要重新啟動(dòng)很麻煩,我就想到有沒有不需要這樣修改立馬生效,本人以前也是搞全棧開發(fā)。也沒想過像他們講的用jrebel,一開始百度
開發(fā)IDE: Intellij IDEA 2018.3.5 SpringBoot:2.0.3.RELEASE
熱部署
大家都知道在項(xiàng)目開發(fā)過程中,常常會(huì)改動(dòng)頁面數(shù)據(jù)或者修改數(shù)據(jù)結(jié)構(gòu),為了顯示改動(dòng)效果,往往需要重啟應(yīng)用查看改變效果,其實(shí)就是重新編譯生成了新的Class文件,這個(gè)文件里記錄著和代碼等對(duì)應(yīng)的各種信息,然后Class文件將被虛擬機(jī)的ClassLoader加載。
而熱部署正是利用了這個(gè)特點(diǎn),它監(jiān)聽到如果有Class文件改動(dòng)了,就會(huì)創(chuàng)建一個(gè)新的ClaassLoader進(jìn)行加載該文件,經(jīng)過一系列的過程,最終將結(jié)果呈現(xiàn)在我們眼前。
類加載機(jī)制
Java中的類經(jīng)過編譯器可以把代碼編譯為存儲(chǔ)字節(jié)碼的Class文件,該Class文件存儲(chǔ)了各種信息,最終要加載到虛擬機(jī)中運(yùn)行使用。
類加載機(jī)制(摘自《深入理解 Java 虛擬機(jī)》)
虛擬機(jī)把描述類的數(shù)據(jù)從Class文件加載到內(nèi)存中,并對(duì)數(shù)據(jù)進(jìn)行校驗(yàn)、轉(zhuǎn)換解析和初始化,最終形成可以被虛擬機(jī)直接使用的Java類型。
spring-boot-devtools 自動(dòng)重啟(熱部署)
在激活了開發(fā)者工具后,ClassPath里對(duì)文件做任何修改都會(huì)觸發(fā)應(yīng)用程序重啟。為了讓重啟的速度夠快,不會(huì)修改的類(第三方JAR包)都加載到了基礎(chǔ)類加載器里,而應(yīng)用程序的代碼則會(huì)加載到一個(gè)單獨(dú)的重啟類加載器里。檢測(cè)到變更時(shí),只會(huì)重啟類加載 器重啟。
有些ClassPath里的資源變更后不需要重啟應(yīng)用程序。像Thymeleaf這樣的視圖模板可以直接編輯,不用重啟。在/static 或 /public里的靜態(tài)資源也不用重啟應(yīng)用程序,所以Spring Boot開發(fā)者工具在重啟時(shí)排除掉了如下目錄:/META-INF/resources、/resources、/static、/public、/templates。
一、POM集成
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> </dependency>
二、勾選Build project automatically
下面這一步,我自己測(cè)試發(fā)現(xiàn)是不需要設(shè)置的。但是有網(wǎng)友說需要設(shè)置才生效,這個(gè)看個(gè)人情況,酌情設(shè)置。
三、IDEA 設(shè)置為在程序運(yùn)行過程中,依然允許自動(dòng)編譯
操作: ctrl + shift + alt + /,選擇Registry,勾選勾上 Compiler autoMake allow when app running
四、spring boot 熱部署下面的running Application Update Policies這兩個(gè)要設(shè)置,最重要一步驟,少了還是沒作用。網(wǎng)上很多少了這一步驟,研究半天才發(fā)現(xiàn)
執(zhí)行完上述的操作步驟后,我們的devtools熱部署集成就完成了。
以上這篇idea自動(dòng)加載html、js而無需重啟進(jìn)程的操作就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. Python如何批量生成和調(diào)用變量2. ASP.NET MVC實(shí)現(xiàn)橫向展示購物車3. ASP.Net Core對(duì)USB攝像頭進(jìn)行截圖4. .net如何優(yōu)雅的使用EFCore實(shí)例詳解5. ASP.Net Core(C#)創(chuàng)建Web站點(diǎn)的實(shí)現(xiàn)6. python 爬取京東指定商品評(píng)論并進(jìn)行情感分析7. python基礎(chǔ)之匿名函數(shù)詳解8. Python獲取B站粉絲數(shù)的示例代碼9. ajax動(dòng)態(tài)加載json數(shù)據(jù)并詳細(xì)解析10. 通過CSS數(shù)學(xué)函數(shù)實(shí)現(xiàn)動(dòng)畫特效
