一、热部署
1.为什么要使用热部署?
在实际开发中,每次修改代码就得将项目重启,重新部署,需要花费大量时间
2.实现简单的类修改的热部署
1)加入依赖
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
2)自动重启
第一种方法:
Ctrl+F9(Build → Build Project)
第二种方法:
file–Settings–Compiler–Build project automatically
Ctrl+Shift+Alt+/–registy–compiler.automake.allow.when.app.running
二、热部署原理
重启技术使用两个classloader,一些不会改变的类(例如,第三方jar包)是加载进入base classloader,一些活跃的开发类是加载进入restart classloader,当应用重新启动(热启动),restart classloader会被丢弃,然后创建一个新的,比冷启动速度要快
三、热部署的排除
1.当一些资源在修改时没有必要去触发重启时,可手动设置:
spring.devtools.restart.exclude=static/** ,public/**
2.改变资源在 /META-INF/maven, /META-INF/resources, /resources, /static, /public, 或 /templates中不会触发重启,但是会触发live reload
live reload
当资源改变的时候,会触发浏览器的刷新