淘先锋技术网

首页 1 2 3 4 5 6 7

springboot 热部署

 

作用:修改类等文件后,不用手动重启,应用自动加载修改的文件使其生效

 

实现原理:使用两个classloader,一个类加载器加载不会改变的类、第三方jar包

另一个类加载器(restart classloader)加载会改变的文件,当文件修改后,丢弃原来的restart classloader,自动重启应用,创建新的restart classloader加载修改后的文件,由于修改文件数相对较少,应用重启较快

 

 

***************************

引入jar 包

 

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <version>2.1.8.RELEASE</version>
</dependency>

说明:devtools可实现前端页面热部署、类文件热部署、属性文件热部署,

devtools会监听classpath下文件的修改,当发生变动时,会自动重新启动应用

 

 

***************************

示例

 

spring:
  devtools:
    restart:
      enabled: true    #开启热加载
  thymeleaf:
    cache: false       #thymeleaf不使用缓存

 

 

***************************

idea配置

 

file ==> settings ==> compiler ==> build project automatically

ctrl + shift + alt + / ==> registry ==> compiler automake allow when app runnning