激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Spring Boot DevTools使用教程

Spring Boot DevTools使用教程

2021-06-10 15:25jdon Java教程

DevTools通過提供自動重啟和LiveReload功能,使您更快、更輕松地開發Spring Boot應用程序。這篇文章主要介紹了Spring Boot DevTools使用教程,需要的朋友可以參考下

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

如何使用devtools進一步加快spring boot開發速度?你需要做的就是添加正確的依賴關系,與spring boot一樣,設置非常簡單。

如果您使用maven:

?
1
2
3
4
5
<dependency>
 <groupid>org.springframework.boot</groupid>
 <artifactid>spring-boot-devtools</artifactid>
 <optional>true</optional>
</dependency>

或者,使用gradle時:

?
1
2
3
4
5
6
7
8
9
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為您的本地開發配置了許多開箱即用的屬性。

?
1
2
3
4
5
6
7
8
9
10
11
12
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 中所有屬性的 列表 。

遠程連接

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

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

?
1
2
3
4
5
6
7
8
9
10
11
<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

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

?
1
2
3
4
public static void main(string args) {
 system.setproperty("spring.devtools.restart.enabled", "false");
 springapplication.run(myapp.class, args);
}

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

總結

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

原文鏈接:https://www.jdon.com/50644

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产乱乱视频 | 操你逼| caoporn国产一区二区 | 黄色片网站在线看 | 国产va在线观看免费 | 国产毛片aaa一区二区三区视频 | 国产1区视频 | 日韩黄在线观看 | 久久综合给合久久狠狠狠97色69 | 日本一区二区精品 | 92精品国产自产在线 | 一级免费看片 | 久久国产一级片 | 国产成人在线一区 | 久久久一区二区精品 | 免费黄色大片网站 | 少妇色诱麻豆色哟哟 | 欧美黑人伦理 | 久草在线高清视频 | 免费日本一区二区 | 黄色欧美精品 | 精品久久久久久久久久久久 | 中国av免费观看 | 操碰视频在线观看 | 久久综合av | 666sao| 亚洲精品自在在线观看 | 一级毛片看 | v天堂在线视频 | 91一区二区三区久久久久国产乱 | 成人aaaa免费全部观看 | 一级毛片在线免费播放 | 伊人yinren22综合网色 | 九九视频精品在线观看 | 曰本三级日本三级日本三级 | 久久激情免费视频 | 日本a大片 | 欧美在线中文字幕 | 综合毛片 | 亚洲卡通动漫在线观看 | videos 欧美|