亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Java > 正文

Spring Boot DevTools使用教程

2024-07-14 08:42:46
字體:
來源:轉載
供稿:網友

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

如何使用DevTools進一步加快Spring Boot開發速度?你需要做的就是添加正確的依賴關系,與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依賴性傳遞性地應用于依賴于你項目的其他模塊。

自動重啟

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

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

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

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

在IDE中觸發重新啟動

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

使用IntelliJ IDEA時,您需要構建項目(Ctrl + F9或Build→Build Project)。您還可以將IDEA配置為自動重建?;蛘撸枰蜷_Spring Boot運行配置并定義觸發應用程序更新時發生的情況,Alt + Shift + F10 或F9 進行運行配置,選擇編輯配置:

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

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

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

僅限開發

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

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

Live Reload

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

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

屬性覆蓋

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

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

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

遠程連接

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

默認情況下不啟用遠程連接。您需要通過修改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

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

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

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

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

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

全局配置

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

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

限制

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

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

spring.devtools.livereload.enabled=false

關機鉤ShutdownHook

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

springApplication.setRegisterShutdownHook(false);

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

與第三方庫的沖突

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

spring.devtools.restart.enabled=false

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

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

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

總結

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


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产99视频精品免视看7| 国产成人精品最新| 国产成人精品日本亚洲| 欧美激情伊人电影| 91久久久久久国产精品| 青青草原一区二区| 中文字幕视频在线免费欧美日韩综合在线看| www.欧美精品一二三区| 日韩有码片在线观看| 亚洲人成电影在线播放| 欧美视频精品一区| 亚洲一区二区三区成人在线视频精品| 久久成人精品一区二区三区| 国产精品视频播放| 精品久久久在线观看| 26uuu日韩精品一区二区| 欧美日产国产成人免费图片| 欧美高清一级大片| 国产欧美日韩综合精品| 欧美日韩中文字幕| 欧美日韩国产999| 色狠狠久久aa北条麻妃| 国产精品老女人精品视频| 久久国产精品久久久久久| 日韩三级影视基地| 国产999在线| 日本久久中文字幕| 国产亚洲一级高清| 亚洲女人天堂成人av在线| 欧美激情一二区| 日韩高清不卡av| 久久偷看各类女兵18女厕嘘嘘| 欧美精品一区三区| 欧美中在线观看| 日韩久久精品成人| 在线性视频日韩欧美| yw.139尤物在线精品视频| 亚洲女在线观看| 中文字幕免费精品一区高清| 中文在线不卡视频| 91亚洲精华国产精华| 国产精品久久久久免费a∨大胸| 欧美激情一区二区三区高清视频| 日韩免费精品视频| 久久99热精品这里久久精品| 久久亚洲欧美日韩精品专区| 国产精品欧美风情| 57pao成人国产永久免费| 亚洲免费伊人电影在线观看av| 国产97人人超碰caoprom| 国产亚洲欧洲高清一区| 欧美日本黄视频| 91久热免费在线视频| 岛国av一区二区| 成人精品视频久久久久| 国产亚洲精品美女| 欧美尤物巨大精品爽| 欧美视频第一页| 亚洲日本中文字幕| 色综合亚洲精品激情狠狠| 66m—66摸成人免费视频| 亚洲精品久久久久中文字幕二区| 97精品视频在线播放| 一区二区三区动漫| 亚洲成人黄色在线观看| 久久精品国产99国产精品澳门| 97在线视频免费看| 日韩中文字幕av| 91美女片黄在线观看游戏| 日韩亚洲综合在线| 日韩美女在线观看一区| 一道本无吗dⅴd在线播放一区| 在线观看视频亚洲| 日韩精品视频中文在线观看| 国产午夜精品一区理论片飘花| 欧美大奶子在线| 国产精品爽黄69天堂a| 一区二区三区四区视频| 欧美日韩xxxxx| 国产成人精品国内自产拍免费看| 亚洲国产一区二区三区四区| 亚洲精品一区二区在线| 成人在线视频网站| 亚洲国产欧美自拍| 日韩不卡在线观看| 亚洲а∨天堂久久精品喷水| 欧美国产欧美亚洲国产日韩mv天天看完整| 91精品国产精品| 欧美精品免费在线| 亚洲国产精彩中文乱码av在线播放| 日本精品va在线观看| 欧美激情视频免费观看| 超薄丝袜一区二区| 亚洲精品久久视频| 国产91精品不卡视频| 欧美激情第一页xxx| 亚洲欧洲xxxx| 亚洲欧洲美洲在线综合| 欧美裸身视频免费观看| 亚洲人成亚洲人成在线观看| 亚洲最大福利视频| 国产精品扒开腿爽爽爽视频| 欧美日韩国产在线播放| 亚洲午夜精品久久久久久性色| 自拍偷拍亚洲一区| 国产精品久久久久久五月尺| 视频在线观看99| 国产精品久久久久久久app| 日韩中文字幕视频在线观看| 亚洲欧美日韩精品久久奇米色影视| 91产国在线观看动作片喷水| 亚洲欧美中文在线视频| 欧美理论电影网| 国产精品美女免费视频| 久久久久久久影视| 欧美日韩成人在线播放| 亚洲色无码播放| 亚洲尤物视频网| 91国产在线精品| 欧美日韩在线视频观看| 国产美女精品免费电影| 国产精品日韩专区| 国产成人免费av| 国产小视频国产精品| 成人夜晚看av| 久久久久久久久久久国产| 国产91色在线免费| 国产成人精品av| 国产999精品视频| 日韩激情av在线免费观看| 色婷婷亚洲mv天堂mv在影片| 日韩成人小视频| 欧美成人三级视频网站| 国产精品天天狠天天看| 国产日韩欧美自拍| 国内精品视频在线| 国产精品黄色影片导航在线观看| 久久精品色欧美aⅴ一区二区| 久久国产精品久久国产精品| 日韩国产精品一区| 国产69精品久久久久99| 久久精品亚洲94久久精品| 国产区精品在线观看| 少妇高潮 亚洲精品| 久久久久久久久久久久久久久久久久av| 亚洲精品成人网| 日韩在线视频观看| 欧美亚洲国产另类| 亚洲人成在线观看网站高清| 另类美女黄大片| 92看片淫黄大片看国产片| 日韩国产一区三区| 91精品免费看| 国产一区二区三区中文| 亚洲精品国精品久久99热一| 欧美猛交ⅹxxx乱大交视频| 久久久久久亚洲精品不卡| 成人免费网站在线| 777777777亚洲妇女| 久久视频在线播放| 国产精品成人aaaaa网站| 91地址最新发布| 久久久久久91香蕉国产| 久久精品亚洲热|