.net core dapper 從 select from int (...) 到 Table-Valued Parameters
阿新 • • 發佈:2020-10-16
Spring Boot 熱部署
概述
在進行 Spring Boot 的 Web 專案開發中,我們經常會遇到原始碼檔案、配置檔案等的修改,但每次修改後都會重啟 Web 伺服器才能修改後的檔案生效,這樣很耗時,影響開發效率。而熱部署就是不需要重啟 Web 伺服器就可以保證各項檔案修改後便立即生效。
spring-boot-devtools 介紹
spring-boot-devtools
是一個為開發者服務的模組,可以實現 Spring Boot 熱部署,其中最重要的功能就是自動將應用程式碼更改到最新的 App 上面去。spring-boot-devtools
可以實現頁面熱部署,實現類檔案熱部署(類檔案修改後不會立即生效),實現對屬性配置檔案的熱部署。其原理是spring-boot-devtools
- 由於採用的虛擬機器機制,重啟的時候只是載入了在開發的 Class,沒有重新載入第三方的 JAR 包,所以重啟是很快的。
devtools的原理
深層原理是使用了兩個ClassLoader,一個Classloader載入那些不會改變的類(第三方Jar包),另一個ClassLoader載入會更改的類,稱為restart ClassLoader,這樣在有程式碼更改的時候,原來的restart ClassLoader 被丟棄,重新建立一個restart ClassLoader,由於需要載入的類相比較少,所以實現了較快的重啟時間
配置熱部署
- 在 pom.xml 檔案中,新增專案
spring-boot-devtools
依賴
<!--熱部署依賴--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> </dependency> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <!--沒有該項配置,熱部署不會起作用--> <configuration> <fork>true</fork> </configuration> </plugin> 複製程式碼
- 在資原始檔
application.properties
中進行熱部署的相關配置
# 頁面修改後立即生效,關閉快取,立即重新整理
spring.thymeleaf.cache=false
# 熱部署生效
spring.devtools.restart.enabled=true
# 設定需要重啟的目錄
spring.devtools.restart.additional-paths=src/java/main
# 設定不需要重啟的目錄
spring.devtools.restart.exclude=static/**,public/**,WEB-INF/**
# 為 mybatis 設定,生產環境可刪除
# restart.include.mapper=/mapper-[\\w-\\.]+jar
# restart.include.pagehelper=/pagehelper-[\\w-\\.]+jar
複製程式碼
當熱部署搭建完成後,程式只要啟動一次即可,後面修改程式碼時,只需儲存後便可以觸發熱部署機制,自動重啟服務。
設定 IDEA 環境自動編譯
在使用 IDEA 編譯器時,需要設定自動編譯。
- 在編譯器選項中勾選
Build project automatically
選項
- 使用快捷鍵:
Ctrl + Alt + Shift + /
調出 Registry 視窗,勾選compiler.automake.allow.when.app.running
選項