最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring Boot DevTools使用教程

 更新時間:2018年11月08日 08:38:10   作者:banq  
DevTools通過提供自動重啟和LiveReload功能,使您更快、更輕松地開發(fā)Spring Boot應用程序。這篇文章主要介紹了Spring Boot DevTools使用教程,需要的朋友可以參考下

DevTools通過提供自動重啟和LiveReload功能,使您更快、更輕松地開發(fā)Spring Boot應用程序。除此之外,它還將各種屬性設置為更適合本地開發(fā)的值。此外,它允許您遠程連接到您的應用程序,并仍然使用其大部分功能。在生產中運行時,不要使用DevTools。

如何使用DevTools進一步加快Spring Boot開發(fā)速度?你需要做的就是添加正確的依賴關系,與Spring Boot一樣,設置非常簡單。

如果您使用Maven:

<dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-devtools</artifactId>
 <optional>true</optional>
</dependency>

或者,使用Gradle時:

configurations {
 developmentOnly
 runtimeClasspath {
  extendsFrom developmentOnly
 }
}
dependencies {
 developmentOnly("org.springframework.boot:spring-boot-devtools")
}

依賴項聲明為可選。這個很重要。這可以防止DevTools依賴性傳遞性地應用于依賴于你項目的其他模塊。

自動重啟

每當類路徑中的文件發(fā)生更改時,DevTools會自動重新啟動正在運行的應用程序,并應用新的更改。在本地開發(fā)時,這可能很有價值,因為您不需要手動重新部署應用程序。

重啟仍然需要花費很多時間,你可能認為它不會那么有用,。幸運的是,這些重啟比常規(guī)重啟更快,因為DevTools使用了一個聰明的技巧。

在開發(fā)應用程序時,您通常會更改一個或多個類,并希望檢查正在運行的應用程序中的結果以獲得反饋。您更改應用程序的一小部分,因為大多數(shù)加載的類來自框架和第三方庫。

,Spring DevTools使用兩個類加載器 - base和restart。base類加載器加載不更改的類。你正在使用的類由restart類加載器加載。每當觸發(fā)重啟時,都會重新啟動并重新創(chuàng)建restart的類加載器。這樣重新啟動應用程序的速度比平??斓枚?,并且可以使用JRebel等工具作為動態(tài)類重新加載的替代方法。

在IDE中觸發(fā)重新啟動

只要類路徑發(fā)生更改,就會觸發(fā)重新啟動。但是,這取決于您的IDE。這意味著,僅僅更改.java文件是不夠的。重要的是您的IDE實際上更新.class了類路徑上的文件。

使用IntelliJ IDEA時,您需要構建項目(Ctrl + F9或Build→Build Project)。您還可以將IDEA配置為自動重建。或者,需要打開Spring Boot運行配置并定義觸發(fā)應用程序更新時發(fā)生的情況,Alt + Shift + F10 或F9 進行運行配置,選擇編輯配置:

在On Update action中選擇Update trigger file,在調用Update操作時觸發(fā)DevTools的Restart;甚至可以選擇嘗試熱插拔的選項,并僅在熱插拔失敗時使用DevTools重新啟動。

在On frame deactivation中選擇Update classes and resources。在IDEA窗口失去焦點時重新加載所有靜態(tài)資源和模板(例如,切換到瀏覽器窗口時)。

確認后,修改源碼,切換到瀏覽器,刷新瀏覽器,可以看到更新后的結果,如果還不行按(Ctrl + F10)強行更新重啟。

僅限開發(fā)

Spring Boot DevTools的用法僅用于開發(fā),而不用于生產。如果您的應用程序檢測到您正在生產中運行,則會自動禁用DevTools。

部署時有兩種模式:fully packaged artifact完全打包和exploded artifact ;采取前者打包方式Spring會認為是生產應用;后者認為是開發(fā)模式,在Idea等IDE中采取的是后者。

Live Reload

LiveReload 是一個有用的工具,它允許您在文件中進行更改時立即在瀏覽器中更新頁面,如HTML,CSS,圖像等。它甚至可以根據(jù)需要預處理文件 - 這意味著自動編譯SASS或LESS文件。

Spring DevTools自動啟動LiveReload服務器的本地實例,該服務器監(jiān)視您的文件。您需要做的就是安裝一個 瀏覽器擴展 ,然后你就可以了。它不僅可用于開發(fā)應用程序的前端(如果將其作為Spring應用程序工件的一部分進行分發(fā)),還可用于監(jiān)視和重新加載REST API的輸出。

屬性覆蓋

在本地開發(fā)應用程序時,與在生產環(huán)境相比通常需要不同的配置。自己管理多組配置是不必要的復雜。好消息是Spring Boot DevTools為您的本地開發(fā)配置了許多開箱即用的屬性。

spring.thymeleaf.cache=false
spring.freemarker.cache=false
spring.groovy.template.cache=false
spring.mustache.cache=false
server.servlet.session.persistent=true
spring.h2.console.enabled=true
spring.resources.cache.period=0
spring.resources.chain.cache=false
spring.template.provider.cache=false
spring.mvc.log-resolved-exception=true
server.servlet.jsp.init-parameters.development=true
spring.reactor.stacktrace-mode.enabled=true

可以檢查 DevToolsPropertyDefaultsPostProcessor 中所有屬性的 列表 。

遠程連接

除本地開發(fā)外,您還可以連接到運行DevTools的遠程應用程序。這不適用于生產環(huán)境,因為它可能是一個嚴重的安全風險。但是,它在預生產環(huán)境中非常有用。

默認情況下不啟用遠程連接。您需要通過修改pom文件顯式啟用它:

<build>
 <plugins>
  <plugin>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-maven-plugin</artifactId>
   <configuration>
    <excludeDevtools>false</excludeDevtools>
   </configuration>
  </plugin>
 </plugins>
</build>

然后,您需要設置一個密碼,以便在連接到遠程應用程序時用于身份驗證:

spring.devtools.remote.secret=somesecret

遠程應用程序運行后,您可以啟動遠程連接會話,現(xiàn)在,您需要啟動org.springframework.boot.devtools.RemoteSpringApplication,使用遠程應用程序的URL作為參數(shù)啟動。請注意,https如果可能,請使用https。

在IDE中輕松運行遠程連接。在IDEA中,您只需創(chuàng)建一個新的運行配置。轉到Run → Edit Configurations...并創(chuàng)建一個+左上角帶有圖標的新配置。選擇Application類型。

從DevTools模塊中選擇RemoteSpringApplication作為Main類,并設置遠程參數(shù)遠程應用程序的URL。

運行此配置后,如果與遠程應用程序的連接成功,您應該會看到相應的輸出。

連接到遠程應用程序后,DevTools監(jiān)視類路徑更改,與本地開發(fā)相同。但是,它不是本地重新啟動,而是將更改推送到遠程服務器并在那里觸發(fā)重新啟動。這比構建應用程序和部署到遠程計算機要快得多。

全局配置

可以像使用任何其他Spring應用程序一樣使用配置屬性配置DevTools。這通常意味著編輯application.properties您的項目。此配置對于每個應用程序是獨立的。

但是,在某些情況下,為同一臺計算機上運行的所有應用程序進行全局配置可能很方便。您可以創(chuàng)建一個名為.spring-boot-devtools.properties位于$HOME目錄中的屬性文件。此文件中聲明的配置將應用于運行DevTools的所有應用程序。

限制

使用DevTools的Spring應用程序會自動啟動LiveReload服務器。不幸的是,此服務器中只有一個實例可以同時運行。更確切地說,只有第一個可行。這不僅適用于使用DevTools的Spring應用程序的多個實例,也適用于任何其他應用程序,這些應用程序也在后臺使用LiverReload,例如 Gatsby 在開發(fā)模式下。

如果要將Spring應用程序配置為不啟動LiveReload服務器,可以在application.properties加入:

spring.devtools.livereload.enabled=false

關機鉤ShutdownHook

DevTools依賴于 關機掛鉤 的SpringApplication。如果您使用以下方法手動禁用掛鉤,它將無法正常工作:

springApplication.setRegisterShutdownHook(false);

認情況下,掛鉤已啟用,因此除非您明確禁用它,否則無需擔心它。

與第三方庫的沖突

DevTools通常應該正常運行,但它可能與第三方庫有沖突。特別是, 已知問題 是使用標準ObjectInputStream進行反序列化存在存在沖突。如果發(fā)生此類沖突,您可以通過設置禁用自動重啟:

spring.devtools.restart.enabled=false

將不再觸發(fā)重啟。但是,仍將使用重新啟動類加載器。如果您需要完全禁用類加載器,則需要在啟動應用程序之前執(zhí)行此操作:

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

即使您不使用自動重啟,您仍然可以從DevTools提供的其他功能中受益。

總結

以上所述是小編給大家介紹的Spring Boot DevTools使用教程,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關文章

  • SpringMVC實現(xiàn)文件上傳與下載、攔截器、異常處理器等功能

    SpringMVC實現(xiàn)文件上傳與下載、攔截器、異常處理器等功能

    這篇文章主要給大家介紹了關于SpringMVC實現(xiàn)文件上傳與下載、攔截器、異常處理器等功能的相關資料,這些功能在我們日常開發(fā)中經(jīng)常會遇到,本文通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2021-09-09
  • spring?MVC實現(xiàn)簡單登錄功能

    spring?MVC實現(xiàn)簡單登錄功能

    這篇文章主要為大家詳細介紹了spring?MVC實現(xiàn)簡單登錄功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-09-09
  • Java實現(xiàn)可視化走迷宮小游戲的示例代碼

    Java實現(xiàn)可視化走迷宮小游戲的示例代碼

    這篇文章主要介紹了Java如何實現(xiàn)可視化走迷宮小游戲。本程序適用于java程序員鞏固類與對象、文件讀取、事件響應、awt包中各種工具的相關概念以及對邏輯能力的鍛煉,需要的可以參考一下
    2022-11-11
  • Spring Cloud引入Eureka組件,完善服務治理

    Spring Cloud引入Eureka組件,完善服務治理

    這篇文章主要介紹了Spring Cloud引入Eureka組件,完善服務治理的過程詳解,幫助大家更好的理解和使用spring cloud,感興趣的朋友可以了解下
    2021-02-02
  • 如何基于SpringSecurity的@PreAuthorize實現(xiàn)自定義權限校驗方法

    如何基于SpringSecurity的@PreAuthorize實現(xiàn)自定義權限校驗方法

    spring Security提供有若干個過濾器,它們能夠攔截Servlet請求,并將這些請求轉給認證和訪問決策管理器處理,從而增強安全性,下面這篇文章主要給大家介紹了關于如何基于SpringSecurity的@PreAuthorize實現(xiàn)自定義權限校驗方法的相關資料,需要的朋友可以參考下
    2023-03-03
  • 云計算實驗:Java?MapReduce編程

    云計算實驗:Java?MapReduce編程

    這篇文章主要介紹了云計算實驗:Java?MapReduce編程,?居于Java圍繞MapReduce編程展開詳細內容,文章助大家掌握MapReduce編程,理解MapReduce原理,需要的朋友可以參考一下
    2021-12-12
  • Apache?Commons?CLI構建命令行應用利器教程

    Apache?Commons?CLI構建命令行應用利器教程

    這篇文章主要為大家介紹了構建命令行應用利器Apache?Commons?CLI的使用教程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-12-12
  • java配置context.xml文件的方法圖解

    java配置context.xml文件的方法圖解

    這篇文章主要介紹了java配置context.xml文件的方法圖解,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2018-02-02
  • Java內存模型及其作用詳解

    Java內存模型及其作用詳解

    在現(xiàn)代計算機系統(tǒng)中,尤其是多處理器架構下,每個處理器都有自己的高速緩存,而主內存(RAM)是所有處理器共享的數(shù)據(jù)存儲區(qū)域,這篇文章主要介紹了深入理解Java內存模型及其作用,需要的朋友可以參考下
    2024-04-04
  • java基礎之標簽、按鈕和按鈕事件簡介

    java基礎之標簽、按鈕和按鈕事件簡介

    本文給大家?guī)淼氖莏ava圖形界面的基礎知識,簡單介紹了標簽、按鈕和按鈕事件,十分的詳細,有需要的小伙伴可以參考下。
    2015-06-06

最新評論

右玉县| 安远县| 郸城县| 双辽市| 青阳县| 红安县| 东丰县| 岳西县| 化州市| 那曲县| 富锦市| 浑源县| 玉龙| 香格里拉县| 张掖市| 顺义区| 松滋市| 广饶县| 葫芦岛市| 四平市| 五华县| 东乌珠穆沁旗| 伊通| 余庆县| 奇台县| 高邑县| 天镇县| 临高县| 漯河市| 上栗县| 资兴市| 商洛市| 临洮县| 华亭县| 宜城市| 鹤峰县| 扎兰屯市| 阿勒泰市| 荥阳市| 惠安县| 黄山市|