Spring Boot2.0之熱部署原理
阿新 • • 發佈:2018-11-09
所謂的熱部署:比如專案的熱部署,就是在應用程式在不停止的情況下,實現新的部署
原理: 實用類載入器(classloader重新讀取位元組碼檔案到jvm記憶體)
如何純手寫一個熱部署功能:
1、監聽 class檔案是否發生改變 版本號、修改時間 作對比
2、如果發生改變就用classloader進行重新讀取
熱部署要是用在生產環境,效能很差了。不安全!
熱部署用在本地開發(eclipse idea)用來提高效率
Spring Boot使用 devtools做熱部署
有些工具是有熱部署的功能的
修改完程式碼---》然後按儲存--》訪問時候其實會重啟
訪問引發重啟!
這樣讀到的都是新的:
package com.toov5.controller; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import lombok.extern.slf4j.Slf4j; @RestController @Slf4jpublic class IndexController { @Value("${name}") private String name; @RequestMapping("/index") public String index() { String result = "修改啊來啊"; log.info("result:{}", result); return result + name; } }
訪問:
devtools修改的原因是 重啟!