<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>

          java-hot-reload-agentjava 熱更新插件

          聯(lián)合創(chuàng)作 · 2023-10-01 07:24

          java 熱更新插件,無需重啟 java 進程實現(xiàn)代碼更新,提高開發(fā)效率,節(jié)約時間去陪女朋友!

          功能模塊

          • hot-reload-core: 核心處理邏輯,編譯&加載 class
          • hot-reload-agent: javaagent 入口
          • hot-reload-watcher: 監(jiān)聽本地 java 和 class 文件變化,實現(xiàn)本地進程熱更新
          • hot-reload-server: api server,提供接口實現(xiàn)加載遠程 jvm 進程

          架構(gòu)

          支持本地模式和遠程模式

          基本原理

          1. watcher 監(jiān)聽本地文件變更(.class & .java)并緩存變更文件路徑
          2. 將變更文件上傳到 server 并保存在臨時目錄(本地模式忽略次步驟)
          3. 通過 javaagent 技術(shù) attach 到 jvm 進程,拿到Instrumentation對象
          4. 使用自定義類加載器(與業(yè)務(wù)代碼隔離)加載 hot-reload-core 編譯 java 文件(如有)
          5. 讀取 class 文件字節(jié)碼,通過instrumentation.redefineClasses()方法重新定義并加載 class

           

          瀏覽 28
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          編輯 分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          編輯 分享
          舉報
          <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>
                  草逼com | 无码AV三级 | 中文乱片A片AAA毛片 | 91蜜桃在线观看 | 99在线观看视频免费 |