java使用devtools熱部署


基于IDEA的熱部暑

    1. 在pom中引入devtools
        <!-- 熱部署 -->
        <!-- devtools可以實現(xiàn)頁面熱部署(即頁面修改后會立即生效,
            這個可以直接在application.properties文件中配置spring.thymeleaf.cache=false來實現(xiàn)) -->
        <!-- 實現(xiàn)類文件熱部署(類文件修改后不會立即生效),實現(xiàn)對屬性文件的熱部署。 -->
        <!-- 即devtools會監(jiān)聽classpath下的文件變動,并且會立即重啟應(yīng)用(發(fā)生在保存時機(jī)),
            注意:因為其采用的虛擬機(jī)機(jī)制,該項重啟是很快的 -->
        <!-- (1)base classloader (Base類加載器):加載不改變的Class,例如:第三方提供的jar包。 -->
        <!-- (2)restart classloader(Restart類加載器):加載正在開發(fā)的Class。 -->
        <!-- 為什么重啟很快,因為重啟的時候只是加載了在開發(fā)的Class,沒有重新加載第三方的jar包。 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <!-- optional=true, 依賴不會傳遞, 該項目依賴devtools;
                之后依賴boot項目的項目如果想要使用devtools, 需要重新引入 -->
            <optional>true</optional>
        </dependency>
    1. 然后在application.properties中進(jìn)行配置
#關(guān)閉緩存, 即時刷新
#spring.freemarker.cache=false
spring.thymeleaf.cache=true


#熱部署生效
spring.devtools.restart.enabled=true
#設(shè)置重啟的目錄,添加那個目錄的文件需要restart
spring.devtools.restart.additional-paths=src/main/java
# 排除那個目錄的文件不需要restart
#spring.devtools.restart.exclude=static/**,public/**
#classpath目錄下的WEB-INF文件夾內(nèi)容修改不重啟
#spring.devtools.restart.exclude=WEB-INF/**

在IDEA的設(shè)置有兩個地方要勾上的

1, 第一個位置: file - settings - compiler

image.png
  1. 按ctrl+shift+alt+/ 后出現(xiàn)下圖(2.1), 選擇registry 然后在如2.2圖中找到 compiler.automake.allow.when.app.runing 勾上
圖2.1
圖2.2

配置完成 ~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容