<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # 20.2 自動重啟 ### 20.2 自動重啟 如果應用使用`spring-boot-devtools`,則只要classpath下的文件有變動,它就會自動重啟。這在使用IDE時非常有用,因為可以很快得到代碼改變的反饋。默認情況下,classpath下任何指向文件夾的實體都會被監控,注意一些資源的修改比如靜態assets,視圖模板不需要重啟應用。 **觸發重啟** 由于DevTools監控classpath下的資源,所以唯一觸發重啟的方式就是更新classpath。引起classpath更新的方式依賴于你使用的IDE,在Eclipse里,保存一個修改的文件將引起classpath更新,并觸發重啟。在IntelliJ IDEA中,構建工程(Build → Make Project)有同樣效果。 **注** 你也可以通過支持的構建工具(比如,Maven和Gradle)啟動應用,只要開啟fork功能,因為DevTools需要一個隔離的應用類加載器執行正確的操作。Gradle默認支持該行為,按照以下配置可強制Maven插件fork進程: ``` <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <fork>true</fork> </configuration> </plugin> </plugins> </build> ``` 自動重啟跟LiveReload可以一起很好的工作,具體參考[下面章節](http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#using-boot-devtools-livereload)。如果你使用JRebel,自動重啟將禁用以支持動態類加載,其他devtools特性,比如LiveReload,屬性覆蓋仍舊可以使用。 DevTools依賴應用上下文的shutdown鉤子來關閉處于重啟過程的應用,如果禁用shutdown鉤子(`SpringApplication.setRegisterShutdownHook(false)`),它將不能正常工作。 當判定classpath下實體的改變是否會觸發重啟時,DevTools自動忽略以下工程:`spring-boot`,`spring-boot-devtools`,`spring-boot-autoconfigure`,`spring-boot-actuator`和`spring-boot-starter`。 **Restart vs Reload** Spring Boot提供的重啟技術是通過使用兩個類加載器實現的。沒有變化的類(比如那些第三方jars)會加載進一個基礎(basic)classloader,正在開發的類會加載進一個重啟(restart)classloader。當應用重啟時,restart類加載器會被丟棄,并創建一個新的。這種方式意味著應用重啟通常比冷啟動(cold starts)快很多,因為基礎類加載器已經可用,并且populated(意思是基礎類加載器加載的類比較多?)。 如果發現重啟對于你的應用來說不夠快,或遇到類加載的問題,那你可以考慮reload技術,比如[JRebel](http://zeroturnaround.com/software/jrebel/),這些技術是通過重寫它們加載過的類實現的。[Spring Loaded](https://github.com/spring-projects/spring-loaded)提供了另一種選擇,然而很多框架不支持它,也得不到商業支持。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看