1. 程式人生 > >Spring Boot2.0之熱部署原理

Spring Boot2.0之熱部署原理

所謂的熱部署:比如專案的熱部署,就是在應用程式在不停止的情況下,實現新的部署

原理: 實用類載入器(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
@Slf4j
public class IndexController { @Value("${name}") private String name; @RequestMapping("/index") public String index() { String result = "修改啊來啊"; log.info("result:{}", result); return result + name; } }

訪問:

 

 devtools修改的原因是 重啟!