国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

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

香港云服务器
服務(wù)器之家 - 編程語言 - Java教程 - Spring Boot DevTools使用教程

Spring Boot DevTools使用教程

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

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

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

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

如果您使用maven:

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

或者,使用gradle時(shí):

?
1
2
3
4
5
6
7
8
9
configurations {
 developmentonly
 runtimeclasspath {
  extendsfrom developmentonly
 }
}
dependencies {
 developmentonly("org.springframework.boot:spring-boot-devtools")
}

依賴項(xiàng)聲明為可選。這個(gè)很重要。這可以防止devtools依賴性傳遞性地應(yīng)用于依賴于你項(xiàng)目的其他模塊。

自動(dòng)重啟

每當(dāng)類路徑中的文件發(fā)生更改時(shí),devtools會(huì)自動(dòng)重新啟動(dòng)正在運(yùn)行的應(yīng)用程序,并應(yīng)用新的更改。在本地開發(fā)時(shí),這可能很有價(jià)值,因?yàn)槟恍枰謩?dòng)重新部署應(yīng)用程序。

重啟仍然需要花費(fèi)很多時(shí)間,你可能認(rèn)為它不會(huì)那么有用,。幸運(yùn)的是,這些重啟比常規(guī)重啟更快,因?yàn)閐evtools使用了一個(gè)聰明的技巧。

在開發(fā)應(yīng)用程序時(shí),您通常會(huì)更改一個(gè)或多個(gè)類,并希望檢查正在運(yùn)行的應(yīng)用程序中的結(jié)果以獲得反饋。您更改應(yīng)用程序的一小部分,因?yàn)榇蠖鄶?shù)加載的類來自框架和第三方庫。

,spring devtools使用兩個(gè)類加載器 - base和restart。base類加載器加載不更改的類。你正在使用的類由restart類加載器加載。每當(dāng)觸發(fā)重啟時(shí),都會(huì)重新啟動(dòng)并重新創(chuàng)建restart的類加載器。這樣重新啟動(dòng)應(yīng)用程序的速度比平常快得多,并且可以使用jrebel等工具作為動(dòng)態(tài)類重新加載的替代方法。

在ide中觸發(fā)重新啟動(dòng)

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

使用intellij idea時(shí),您需要構(gòu)建項(xiàng)目(ctrl + f9或build→build project)。您還可以將idea配置為自動(dòng)重建。或者,需要打開spring boot運(yùn)行配置并定義觸發(fā)應(yīng)用程序更新時(shí)發(fā)生的情況,alt + shift + f10 或f9 進(jìn)行運(yùn)行配置,選擇編輯配置:

在on update action中選擇update trigger file,在調(diào)用update操作時(shí)觸發(fā)devtools的restart;甚至可以選擇嘗試熱插拔的選項(xiàng),并僅在熱插拔失敗時(shí)使用devtools重新啟動(dòng)。

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

確認(rèn)后,修改源碼,切換到瀏覽器,刷新瀏覽器,可以看到更新后的結(jié)果,如果還不行按(ctrl + f10)強(qiáng)行更新重啟。

僅限開發(fā)

spring boot devtools的用法僅用于開發(fā),而不用于生產(chǎn)。如果您的應(yīng)用程序檢測到您正在生產(chǎn)中運(yùn)行,則會(huì)自動(dòng)禁用devtools。

部署時(shí)有兩種模式:fully packaged artifact完全打包和exploded artifact ;采取前者打包方式spring會(huì)認(rèn)為是生產(chǎn)應(yīng)用;后者認(rèn)為是開發(fā)模式,在idea等ide中采取的是后者。

live reload

livereload 是一個(gè)有用的工具,它允許您在文件中進(jìn)行更改時(shí)立即在瀏覽器中更新頁面,如html,css,圖像等。它甚至可以根據(jù)需要預(yù)處理文件 - 這意味著自動(dòng)編譯sass或less文件。

spring devtools自動(dòng)啟動(dòng)livereload服務(wù)器的本地實(shí)例,該服務(wù)器監(jiān)視您的文件。您需要做的就是安裝一個(gè) 瀏覽器擴(kuò)展 ,然后你就可以了。它不僅可用于開發(fā)應(yīng)用程序的前端(如果將其作為spring應(yīng)用程序工件的一部分進(jìn)行分發(fā)),還可用于監(jiān)視和重新加載rest api的輸出。

屬性覆蓋

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

?
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 中所有屬性的 列表 。

遠(yuǎn)程連接

除本地開發(fā)外,您還可以連接到運(yùn)行devtools的遠(yuǎn)程應(yīng)用程序。這不適用于生產(chǎn)環(huán)境,因?yàn)樗赡苁且粋€(gè)嚴(yán)重的安全風(fēng)險(xiǎn)。但是,它在預(yù)生產(chǎn)環(huán)境中非常有用。

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

然后,您需要設(shè)置一個(gè)密碼,以便在連接到遠(yuǎn)程應(yīng)用程序時(shí)用于身份驗(yàn)證:

spring.devtools.remote.secret=somesecret

遠(yuǎn)程應(yīng)用程序運(yùn)行后,您可以啟動(dòng)遠(yuǎn)程連接會(huì)話,現(xiàn)在,您需要啟動(dòng)org.springframework.boot.devtools.remotespringapplication,使用遠(yuǎn)程應(yīng)用程序的url作為參數(shù)啟動(dòng)。請(qǐng)注意,https如果可能,請(qǐng)使用https。

在ide中輕松運(yùn)行遠(yuǎn)程連接。在idea中,您只需創(chuàng)建一個(gè)新的運(yùn)行配置。轉(zhuǎn)到run → edit configurations...并創(chuàng)建一個(gè)+左上角帶有圖標(biāo)的新配置。選擇application類型。

從devtools模塊中選擇remotespringapplication作為main類,并設(shè)置遠(yuǎn)程參數(shù)遠(yuǎn)程應(yīng)用程序的url。

運(yùn)行此配置后,如果與遠(yuǎn)程應(yīng)用程序的連接成功,您應(yīng)該會(huì)看到相應(yīng)的輸出。

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

全局配置

可以像使用任何其他spring應(yīng)用程序一樣使用配置屬性配置devtools。這通常意味著編輯application.properties您的項(xiàng)目。此配置對(duì)于每個(gè)應(yīng)用程序是獨(dú)立的。

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

限制

使用devtools的spring應(yīng)用程序會(huì)自動(dòng)啟動(dòng)livereload服務(wù)器。不幸的是,此服務(wù)器中只有一個(gè)實(shí)例可以同時(shí)運(yùn)行。更確切地說,只有第一個(gè)可行。這不僅適用于使用devtools的spring應(yīng)用程序的多個(gè)實(shí)例,也適用于任何其他應(yīng)用程序,這些應(yīng)用程序也在后臺(tái)使用liverreload,例如 gatsby 在開發(fā)模式下。

如果要將spring應(yīng)用程序配置為不啟動(dòng)livereload服務(wù)器,可以在application.properties加入:

spring.devtools.livereload.enabled=false

關(guān)機(jī)鉤shutdownhook

devtools依賴于 關(guān)機(jī)掛鉤 的springapplication。如果您使用以下方法手動(dòng)禁用掛鉤,它將無法正常工作:

springapplication.setregistershutdownhook(false);

認(rèn)情況下,掛鉤已啟用,因此除非您明確禁用它,否則無需擔(dān)心它。

與第三方庫的沖突

devtools通常應(yīng)該正常運(yùn)行,但它可能與第三方庫有沖突。特別是, 已知問題 是使用標(biāo)準(zhǔn)objectinputstream進(jìn)行反序列化存在存在沖突。如果發(fā)生此類沖突,您可以通過設(shè)置禁用自動(dòng)重啟:

spring.devtools.restart.enabled=false

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

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

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

總結(jié)

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

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

延伸 · 閱讀

精彩推薦
1207
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 日韩免费 | 欧美综合一区二区三区 | 国产这里只有精品 | 亚洲精品91 | 国产成人精品一区二区三区视频 | 操老逼 | 在线 欧美 日韩 | 亚洲精品乱码久久久久久蜜桃91 | 国产精品毛片久久久久久 | 久久久国产精品 | www久久精品| 精品国产欧美一区二区三区成人 | 免费国产黄色大片 | 精品美女在线观看 | 久播播av | 成年人激情视频 | 色综合888| 久久午夜网站 | 国产黄色av| 人人爱av| 亚洲一二三| 一区二区三区久久久 | 久久精品国产77777蜜臀 | 视频在线一区 | 精品96久久久久久中文字幕无 | 久久手机视频 | 精品无码久久久久久久动漫 | 黄色国产视频 | 欧美日本精品 | 成人精品二区 | 亚洲午夜精品视频 | 久草网站 | 国产日本韩国在线 | 亚洲高清视频一区二区 | 欧美视频区| 青草青草久热精品视频在线观看 | 精品成人在线 | 黄色国产片 | 黄色av网站在线观看 | 可以免费看黄的网站 | 毛片免费观看视频 |