中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

熱交換Hot Swapping是怎么工作的

發布時間:2021-12-16 09:25:43 來源:億速云 閱讀:166 作者:iii 欄目:大數據

本篇內容介紹了“熱交換Hot Swapping是怎么工作的”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

重新加載靜態內容

Spring Boot有很多用于熱加載的選項,不過推薦使用spring-boot-devtools,因為它提供了其他開發時特性,比如快速應用重啟和LiveReload,還有開發時敏感的配置加載(比如,模板緩存)。

此外,使用IDE開發也是一個不錯的方式,特別是需要調試的時候(所有的現代IDEs都允許重新加載靜態資源,通常也支持對變更的Java類進行熱交換)。

最后,Maven和Gradle插件也支持命令行下的靜態文件熱加載。如果你使用其他高級工具編寫css/js,并使用外部的css/js編譯器,那你就可以充分利用該功能。

在不重啟容器的情況下重新加載模板

Spring Boot支持的大多數模板技術包含一個禁用緩存的配置選項,如果你正在使用spring-boot-devtools模塊,Spring Boot在開發期間會自動為你配置那些屬性。

Thymeleaf模板

如果你正在使用Thymeleaf,那就將spring.thymeleaf.cache設置為false,查看ThymeleafAutoConfiguration可以獲取其他Thymeleaf自定義選項。

FreeMarker模板

如果你正在使用FreeMarker,那就將spring.freemarker.cache設置為false,查看FreeMarkerAutoConfiguration 可以獲取其他FreeMarker自定義選項。

Groovy模板

如果你正在使用Groovy模板,那就將spring.groovy.template.cache設置為false,查看GroovyTemplateAutoConfiguration可以獲取其他Groovy自定義選項。

Velocity模板

如果你正在使用Velocity,那就將spring.velocity.cache設置為false,查看VelocityAutoConfiguration可以獲取其他Velocity自定義選項。

應用快速重啟

spring-boot-devtools模塊包括應用自動重啟支持,雖然沒有其他技術快,比如JRebel或Spring Loaded,但比"冷啟動"快。在研究其他復雜重啟選項時,你最好自己先試下,更多詳情可參考Spring Boot的使用:開發者工具章節。

在不重啟容器的情況下重新加載Java類

現代IDEs(Eclipse, IDEA等)都支持字節碼的熱交換,所以如果你做了一個沒有影響類或方法簽名的改變,它會利索地重新加載并沒有任何影響。

Spring Loaded在這方面走的更遠,它能夠重新加載方法簽名改變的類定義,如果對它進行一些自定義配置可以強制ApplicationContext刷新自己(但沒有通用的機制來確保這對一個運行中的應用總是安全的,所以它可能只是一個開發時的技巧)。

使用Maven配置Spring Loaded

為了在Maven命令行下使用Spring Loaded,你只需將它作為依賴添加到Spring Boot插件聲明中即可,比如:

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>springloaded</artifactId>
            <version>1.2.0.RELEASE</version>
        </dependency>
    </dependencies>
</plugin>

正常情況下,這在Eclipse和IntelliJ IDEA中工作的相當漂亮,只要它們有相應的,和Maven默認一致的構建配置(Eclipse m2e對此支持的更好,開箱即用)。

使用Gradle和IntelliJ IDEA配置Spring Loaded

如果想將Spring Loaded和Gradle,IntelliJ IDEA結合起來,那你需要付出代價。默認情況下,IntelliJ IDEA將類編譯到一個跟Gradle不同的位置,這會導致Spring Loaded監控失敗。

為了正確配置IntelliJ IDEA,你可以使用idea Gradle插件:

buildscript {
    repositories { jcenter() }
    dependencies {
        classpath "org.springframework.boot:spring-boot-gradle-plugin:1.4.1.RELEASE"
        classpath 'org.springframework:springloaded:1.2.0.RELEASE'
    }
}

apply plugin: 'idea'

idea {
    module {
        inheritOutputDirs = false
        outputDir = file("$buildDir/classes/main/")
    }
}

// ...

注 IntelliJ IDEA必須配置跟命令行Gradle任務相同的Java版本,并且springloaded必須作為一個buildscript依賴被包含進去。

此外,你也可以啟用Intellij IDEA內部的Make Project Automatically,這樣不管什么時候只要文件被保存都會自動編譯。

“熱交換Hot Swapping是怎么工作的”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

肥乡县| 苏州市| 股票| 金乡县| 陈巴尔虎旗| 通山县| 电白县| 高州市| 交口县| 景洪市| 武平县| 阿瓦提县| 安顺市| 成安县| 饶阳县| 磴口县| 岑溪市| 奈曼旗| 额尔古纳市| 得荣县| 本溪| 城市| 凤城市| 丹阳市| 江阴市| 永州市| 遂宁市| 禹城市| 武汉市| 新沂市| 彭水| 保靖县| 柘城县| 伊金霍洛旗| 镇赉县| 宁都县| 和林格尔县| 沙河市| 云阳县| 报价| 北碚区|