您好,登錄后才能下訂單哦!
利用idea如果實(shí)現(xiàn)自動(dòng)加載html和js?針對這個(gè)問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡單易行的方法。
遇到一些單體架構(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è)文件里記錄著和代碼等對應(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)存中,并對數(shù)據(jù)進(jìn)行校驗(yàn)、轉(zhuǎn)換解析和初始化,最終形成可以被虛擬機(jī)直接使用的Java類型。
spring-boot-devtools 自動(dòng)重啟(熱部署)
在激活了開發(fā)者工具后,ClassPath里對文件做任何修改都會(huì)觸發(fā)應(yīng)用程序重啟。為了讓重啟的速度夠快,不會(huì)修改的類(第三方JAR包)都加載到了基礎(chǔ)類加載器里,而應(yīng)用程序的代碼則會(huì)加載到一個(gè)單獨(dú)的重啟類加載器里。檢測到變更時(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
下面這一步,我自己測試發(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熱部署集成就完成了。
關(guān)于利用idea如果實(shí)現(xiàn)自動(dòng)加載html和js問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。