1.概念
热加载:容器监听到文件的改变,重新加载改动的文件到容器,不释放整个应用的内存;这样无需停止该应用的运行,可以节省加载时间,所以常用于开发阶段。
热部署:容器监听到文件的改变,重新加载整个应用程序,并重置应用运行中的所有状态;由于服务器中可以部署多个应用,这样可以不用重启服务器,只自动把改动过的应用重新部署,所以常用于生产阶段。
2.springboot热加载(idea开发工具)
在修改代码之后,直接按Ctrl+shift+F9即可编译代码并加载到应用程序中,及时生效。
示例如下:
访问localhost:8080/hello会在控制台输出:AA
package com.ecarx.jsk.springboot.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletRequest;
@Controller
public class HelloController {
@ResponseBody
@RequestMapping("/hello")
public String hello(HttpServletRequest request) {
System.out.println("AA");
return "Hello World!";
}
}
然后使用快捷键,编译项目代码,重新访问localhost:8080/hello请求
3.springboot热部署(idea开发工具)
第一步:使用springboot提供的工具,引入maven依赖即可。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
第二步:开启自动编译
第三步:设置当程序运行时,也可以编译文件。
使用快捷键Ctrl+shift+A,在输入框中输入Register
双击进入,勾选compiler.automake.allow.when.app.ruanning这个选项即可。(开发不推荐热部署!)