SpringBoot 熱部署筆記

why?

目前的Springboot,當發生了任何修改之後,必須關閉後再啓動Application類才能夠生效,顯得略微麻煩。

what?

簡述

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

devtools的原理

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

how?

1. 添加依賴的jar包

        <!--  熱部署的相關依賴  -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional> <!-- 這個需要爲 true 熱部署纔有效 -->
        </dependency>

確保有這個插件:

            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>

2. 修改配置文件

文件路徑:src/main/resources/application.properties
添加的配置:

# jsp映射相關
spring.mvc.view.prefix=/WEB-INF/
spring.mvc.view.suffix=.jsp

#熱部署生效
spring.devtools.restart.enabled=true

#設置重啓的目錄
spring.devtools.restart.additional-paths=src/main/java

# classpath 目錄下的WEB-INF文件夾修改不重啓
spring.devtools.restart.exclude=WEB-INF/**

# 實現頁面文件的熱部署
spring.thymeleaf.cache=false

3. 修改idea設置

第一步 File -> settings :
在這裏插入圖片描述
第二步:在idea界面的右上角有放大鏡的搜索功能,搜索 Registry:
在這裏插入圖片描述

result?

重啓後
修改java文件保存後:項目自動重啓(重啓部分內容)
修改頁面文件後,刷新瀏覽器:顯示修改後的內容
修改配置文件:項目自動重啓

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章