首頁>技術>

SpringBoot應用通常都載入很多Jar包,每次啟動都要花費很長時間。

Spring為開發者提供了一個名為spring-boot-devtools的模組來使Spring Boot應用支援熱部署,提高開發者的開發效率,無需手動重啟Spring Boot應用。

devtools的原理

使用了兩個ClassLoader,一個Classloader載入那些不會改變的類(第三方Jar包),另一個ClassLoader載入會更改的類,稱為restart ClassLoader。這樣在有程式碼更改的時候,原來的restart ClassLoader 被丟棄,重新建立一個restart ClassLoader,由於需要載入的類相比較少,所以實現了較快的重啟。

它的使用非常簡單。只需要在專案的pom檔案中,加入下面的jar包即可獲取秒級的服務過載(熱部署)。

        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-devtools</artifactId>            <scope>runtime</scope>        </dependency>

下面的配置中spring.devtools.restart.enabled: true不是必須的,預設就會開啟。

# 熱部署配置spring:  devtools:    restart:      # 啟用熱部署      enabled: true      # 設定重啟的目錄      additional-paths: src/main/java      # classpath目錄下的static目錄內容修改不重啟      exclude: classpath:static/**

以上配置即可。簡單吧

禁用重啟 1、在application配置檔案中設定

spring.devtools.restart.enabled=false 在大多數情況下,您可以將此屬性設定在application.properties。(這樣做仍然會初始化重啟類載入器,但它不需要注意。 檔案更改)。

2、如果您需要完全禁用重新啟動支援需要設定spring.devtools.restart.enabled系統屬性

並且在呼叫SpringApplication.run之前設定,如以下示例所示:

public static void main(String[] args) {    System.setProperty("spring.devtools.restart.enabled", "false");    SpringApplication.run(MyApp.class, args);}

本節原始碼地址:https://gitee.com/xtoad/ecms-java.git

11
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 第92p,自己寫程式碼,實現呼叫socket套接字功能