国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
springboot + devtools(熱部署)

spring-boot-devtools 是一個(gè)為開(kāi)發(fā)者服務(wù)的一個(gè)模塊,其中最重要的功能就是自動(dòng)應(yīng)用代碼更改到最新的App上面去。原理是在發(fā)現(xiàn)代碼有更改之后,重新啟動(dòng)應(yīng)用,但是比速度比手動(dòng)停止后再啟動(dòng)還要更快,更快指的不是節(jié)省出來(lái)的手工操作的時(shí)間。

其深層原理是使用了兩個(gè)ClassLoader,一個(gè)Classloader加載那些不會(huì)改變的類(lèi)(第三方Jar包),另一個(gè)ClassLoader加載會(huì)更改的類(lèi),稱(chēng)為  restart ClassLoader

,這樣在有代碼更改的時(shí)候,原來(lái)的restart ClassLoader 被丟棄,重新創(chuàng)建一個(gè)restart ClassLoader,由于需要加載的類(lèi)相比較少,所以實(shí)現(xiàn)了較快的重啟時(shí)間(5秒以內(nèi))。

 

那如何使用呢,大概兩個(gè)步驟即可:

第一就是添加相應(yīng)的依賴:

<!--

           devtools可以實(shí)現(xiàn)頁(yè)面熱部署(即頁(yè)面修改后會(huì)立即生效,這個(gè)可以直接在application.properties文件中配置spring.thymeleaf.cache=false來(lái)實(shí)現(xiàn)),    

           實(shí)現(xiàn)類(lèi)文件熱部署(類(lèi)文件修改后不會(huì)立即生效),實(shí)現(xiàn)對(duì)屬性文件的熱部署。 

           devtools會(huì)監(jiān)聽(tīng)classpath下的文件變動(dòng),并且會(huì)立即重啟應(yīng)用(發(fā)生在保存時(shí)機(jī)),注意:因?yàn)槠洳捎玫奶摂M機(jī)機(jī)制,該項(xiàng)重啟是很快的    

        -->

       <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-devtools</artifactId>

            <optional>true</optional>

        </dependency>

 

第二加點(diǎn):僅僅加入devtools在我們的eclipse中還不起作用,這時(shí)候還需要添加的spring-boot-maven-plugin

<build>

       <plugins>

           <!--

             用于將應(yīng)用打成可直接運(yùn)行的jar(該jar就是用于生產(chǎn)環(huán)境中的jar 值得注意的是,如果沒(méi)有引用spring-boot-starter-parentparent,

                       且采用了上述的第二種方式,這里也要做出相應(yīng)的改動(dòng)

             -->

            <plugin>

                <groupId>org.springframework.boot</groupId>

                <artifactId>spring-boot-maven-plugin</artifactId>

                <configuration>

                   <!--fork :  如果沒(méi)有該項(xiàng)配置,肯呢個(gè)devtools不會(huì)起作用,即應(yīng)用不會(huì)restart -->

                    <fork>true</fork>

                </configuration>

            </plugin>

       </plugins>

   </build>

 

運(yùn)行App.java  ---- Run Application --- Java Application即可進(jìn)行測(cè)試。

測(cè)試方法:

·         修改類(lèi)-->保存:應(yīng)用會(huì)重啟

·         修改配置文件-->保存:應(yīng)用會(huì)重啟

·         修改頁(yè)面-->保存:應(yīng)用會(huì)重啟,頁(yè)面會(huì)刷新(原理是將spring.thymeleaf.cache設(shè)為false

 

不能使用分析:

(a)     對(duì)應(yīng)的spring-boot版本是否正確,我這里使用的是1.3.3版本;

(b)     是否加入plugin了,以及屬性<fork>true</fork>

(c)      Eclipse Project 是否開(kāi)啟了Build Automatically(我自己就在這里栽了坑,不知道為什么我的工具什么時(shí)候關(guān)閉了自動(dòng)編譯的功能)。

(d)     如果設(shè)置SpringApplication.setRegisterShutdownHook(false),則自動(dòng)重啟將不起作用。

 

補(bǔ)充:

默認(rèn)情況下,/META-INF/maven,/META-INF/resources,/resources,/static,/templates/public這些文件夾下的文件修改不會(huì)使應(yīng)用重啟,但是會(huì)重新加載devtools內(nèi)嵌了一個(gè)LiveReload server當(dāng)資源發(fā)生改變時(shí),瀏覽器刷新)。

 

·         如果想改變默認(rèn)的設(shè)置,可以自己設(shè)置不重啟的目錄:spring.devtools.restart.exclude=static/**,public/**,這樣的話,就只有這兩個(gè)目錄下的文件修改不會(huì)導(dǎo)致restart操作了。

 

·         如果要在保留默認(rèn)設(shè)置的基礎(chǔ)上還要添加其他的排除目錄:spring.devtools.restart.additional-exclude

 

·         如果想要使得當(dāng)非classpath下的文件發(fā)生變化時(shí)應(yīng)用得以重啟,使用:spring.devtools.restart.additional-paths,這樣devtools就會(huì)將該目錄列入了監(jiān)聽(tīng)范圍。

 

 

關(guān)閉自動(dòng)重啟

設(shè)置 spring.devtools.restart.enabled 屬性為false,可以關(guān)閉該特性??梢栽?/span>application.properties中設(shè)置,也可以通過(guò)設(shè)置環(huán)境變量的方式。

publicstaticvoidmain(String[] args){
    System.setProperty("spring.devtools.restart.enabled","false");

 

    SpringApplication.run(MyApp.class, args);
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
后端技術(shù):SpringBoot配置熱加載工具(devtools)筆記
SpringBoot熱部署配置
spring boot 熱部署devtools實(shí)現(xiàn)
[Spring Boot 系列教程] Dev Tools
IDEA Spring Boot 的三種熱加載方案,看完弄懂,不用加班~
Spring Boot 官方文檔學(xué)習(xí)(一)入門(mén)及使用
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服