<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Spring Boot入門系列(十五) SpringBoot開發(fā)環(huán)境熱部署的配置

          共 1669字,需瀏覽 4分鐘

           ·

          2020-07-22 21:12

          2c7318934dcc7be37a42c0441492b071.webp

          在實(shí)際的項(xiàng)目開發(fā)過中,當(dāng)我們修改了某個(gè)java類文件時(shí),需要手動重新編譯、然后重新啟動程序的,整個(gè)過程比較麻煩,特別是項(xiàng)目啟動慢的時(shí)候,更是影響開發(fā)效率。其實(shí)Spring Boot的項(xiàng)目碰到這種情況,同樣也同樣需要經(jīng)歷重新編譯、重新啟動程序的過程。只不過Spring Boot 提供了一個(gè)spring-boot-devtools的模塊,使得 Spring Boot應(yīng)用支持熱部署,無需手動重啟Spring Boot應(yīng)用,,提高開發(fā)者的開發(fā)效率。接下來,聊一聊Spring Boot 開發(fā)環(huán)境熱部署。

          ?

          一、原理

          devtools 使用了兩個(gè)類加載器(ClassLoader)。

          一個(gè)是 Base類加載器(base classloader ):加載那些不會改變的類,如:第三方Jar包等。

          另一個(gè)是 Restart類加載器(restart classloader):負(fù)責(zé)加載那些正在開發(fā)的會改變的類。這樣在有代碼更改的時(shí)候,因?yàn)橹貑⒌臅r(shí)候只是加載了在開發(fā)的Class類,沒有重新加載第三方的jar包,所以實(shí)現(xiàn)了較快的重啟時(shí)間。

          devtools 監(jiān)聽classpath下的文件變動(發(fā)生在保存時(shí)機(jī)),并且會立即重啟應(yīng)用。從而實(shí)現(xiàn)類文件和屬性文件的熱部署。

          ?

          二、快速配置

          1、pom配置

          引入devtools的依賴

          <dependency>    <groupId>org.springframework.bootgroupId>    <artifactId>spring-boot-devtoolsartifactId>        <optional>trueoptional>dependency>

          注意:optional=true, 依賴不會傳遞, 該項(xiàng)目依賴devtools;之后依賴boot項(xiàng)目的項(xiàng)目如果想要使用devtools, 需要重新引入。

          ?

          2、application.properties配置

          在application.properties中配置devtools。

          # 關(guān)閉緩存即時(shí)刷新#spring.thymeleaf.cache=false
          #熱部署生效spring.devtools.restart.enabled=true#設(shè)置重啟的目錄spring.devtools.restart.additional-paths=src/main/java#classpath目錄下的WEB-INF文件夾內(nèi)容修改不重啟spring.devtools.restart.exclude=WEB-INF/**

          說明:

          devtools可以實(shí)現(xiàn)頁面熱部署,即頁面修改后會立即生效,需要將application.properties文件中配置spring.thymeleaf.cache=false。

          devtools會監(jiān)聽classpath下的文件變動,并且會立即重啟應(yīng)用。

          ?

          3、IDEA配置

          如果idea是新安裝的或者之前就沒有配置過,發(fā)現(xiàn)改變代碼項(xiàng)目熱部署不成功。當(dāng)我們修改了Java類后,IDEA默認(rèn)是不自動編譯的,而spring-boot-devtools又是監(jiān)測classpath下的文件發(fā)生變化才會重啟應(yīng)用。

          所以需要設(shè)置IDEA的自動編譯:

          (1)File-Settings-Compiler-Build Project automatically

          (2)ctrl + shift + alt + /,選擇Registry,勾上 Compiler autoMake allow when app running?

          這樣,就可以使用devtools實(shí)現(xiàn)熱部署了。

          ?

          最后

          以上,就把如何配置Spring Boot 開發(fā)環(huán)境熱部署介紹完了。還是比較簡單的,大家自己去研究吧。

          ?




          推薦閱讀:


          ce50c773f53f9d1393f7242157825c46.webp



          瀏覽 50
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲性爱一区二区三区 | 巨大乳人妻中文字幕 | 亚洲片第一页 | 亚洲日本Ⅴa中文字幕无码 | 欧美日韩小电影 |