1. 程式人生 > 實用技巧 >.net core dapper 從 select from int (...) 到 Table-Valued Parameters

.net core dapper 從 select from int (...) 到 Table-Valued Parameters

Spring Boot 熱部署

概述

在進行 Spring Boot 的 Web 專案開發中,我們經常會遇到原始碼檔案、配置檔案等的修改,但每次修改後都會重啟 Web 伺服器才能修改後的檔案生效,這樣很耗時,影響開發效率。而熱部署就是不需要重啟 Web 伺服器就可以保證各項檔案修改後便立即生效。

spring-boot-devtools 介紹

  • spring-boot-devtools 是一個為開發者服務的模組,可以實現 Spring Boot 熱部署,其中最重要的功能就是自動將應用程式碼更改到最新的 App 上面去。
  • spring-boot-devtools 可以實現頁面熱部署,實現類檔案熱部署(類檔案修改後不會立即生效),實現對屬性配置檔案的熱部署。其原理是 spring-boot-devtools
    會監聽 Classpath 下的檔案變動,並且會立即重啟應用(發生在儲存時機)。
  • 由於採用的虛擬機器機制,重啟的時候只是載入了在開發的 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 選項

原始碼地址

springboot-devtools

參考文章