1. 程式人生 > 程式設計 >idea自動載入html、js而無需重啟程序的操作

idea自動載入html、js而無需重啟程序的操作

遇到一些單體架構的專案時,由於前後端沒有分離導致每一次動手前端都需要重啟程序執行專案,非常費時費力,因此只需要在idea中配置幾項就能解決這個問題:

1、快捷鍵Ctrl + Alt + S開啟設定面板,build-compiler---勾選 Build project automatically選項(2016版本的idea有可能是:make project automatically)

2、快捷鍵Ctrl + Shift + A查詢registry命令: 在查詢到的registry命令通過滑鼠雙擊或敲回車鍵,在彈出的面板中找到並勾選compiler.automake.allow.when.app.running選項

補充知識:解決IDEA下SpringBoot devtools熱啟動熱部署、修改html或js程式碼還要重新啟動服務問題

其實並不難,百度上面一大把,但是按照他們這樣做還是不能實現,因為我一開始接觸這個問題,用的idea springboot框架修改資源還要重新啟動很麻煩,我就想到有沒有不需要這樣修改立馬生效,本人以前也是搞全棧開發。也沒想過像他們講的用jrebel,一開始百度

開發IDE: Intellij IDEA 2018.3.5 SpringBoot:2.0.3.RELEASE

熱部署

大家都知道在專案開發過程中,常常會改動頁面資料或者修改資料結構,為了顯示改動效果,往往需要重啟應用檢視改變效果,其實就是重新編譯生成了新的Class檔案,這個檔案裡記錄著和程式碼等對應的各種資訊,然後Class檔案將被虛擬機器的ClassLoader載入。

而熱部署正是利用了這個特點,它監聽到如果有Class檔案改動了,就會建立一個新的ClaassLoader進行載入該檔案,經過一系列的過程,最終將結果呈現在我們眼前。

類載入機制

Java中的類經過編譯器可以把程式碼編譯為儲存位元組碼的Class檔案,該Class檔案儲存了各種資訊,最終要載入到虛擬機器中執行使用。

類載入機制(摘自《深入理解 Java 虛擬機器》)

虛擬機器把描述類的資料從Class檔案載入到記憶體中,並對資料進行校驗、轉換解析和初始化,最終形成可以被虛擬機器直接使用的Java型別。

spring-boot-devtools 自動重啟(熱部署)

在激活了開發者工具後,ClassPath裡對檔案做任何修改都會觸發應用程式重啟。為了讓重啟的速度夠快,不會修改的類(第三方JAR包)都載入到了基礎類載入器裡,而應用程式的程式碼則會載入到一個單獨的重啟類載入器裡。檢測到變更時,只會重啟類載入 器重啟。

有些ClassPath裡的資源變更後不需要重啟應用程式。像Thymeleaf這樣的檢視模板可以直接編輯,不用重啟。在/static 或 /public裡的靜態資源也不用重啟應用程式,所以Spring Boot開發者工具在重啟時排除掉了如下目錄:/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

idea自動載入html、js而無需重啟程序的操作

下面這一步,我自己測試發現是不需要設定的。但是有網友說需要設定才生效,這個看個人情況,酌情設定。

idea自動載入html、js而無需重啟程序的操作

三、IDEA 設定為在程式執行過程中,依然允許自動編譯

操作: ctrl + shift + alt + /,選擇Registry,勾選勾上 Compiler autoMake allow when app running

idea自動載入html、js而無需重啟程序的操作

四、spring boot 熱部署下面的running Application Update Policies這兩個要設定,最重要一步驟,少了還是沒作用。網上很多少了這一步驟,研究半天才發現

idea自動載入html、js而無需重啟程序的操作

執行完上述的操作步驟後,我們的devtools熱部署整合就完成了。

以上這篇idea自動載入html、js而無需重啟程序的操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。