springboot的热部署

一、前言

对于一个java后端开发来说,在开发中,每次修改代码就得将项目重新重启,对于一些大型应用来说,重启过程需要花费大量的时间成本,这个过程比较难受,因此有时开发我们进行热部署。对于热部署他只加载重启(Restart)部分:自定义开发代码,包括类、页面、配置文件等,加载位置restart类加载器。不加载重载(ReLoad):jar包,加载位置base类加载器。

二、热部署的设置方式

在springboot中主要有两种热部署方式:第一种是手动启动热部署、第二种是自动启动热部署,下面来讲一下两种的具体步骤。

1. 手动启动热部署

1.1 先在pom.xml中添加依赖

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

1.2 修改对应的代码后,点击Bulid Project手动启动热部署

springboot的热部署_第1张图片

2. 自动启动热部署

2.1 先在pom.xml中添加依赖

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

2.2 选择File-Settings-Compiler-Build Project automatically

springboot的热部署_第2张图片

2.3 快捷键ctrl + shift + alt + / ,选择Registry,勾上 Compiler autoMake allow when app running

springboot的热部署_第3张图片

三、设置热部署的作用范围

在使用热部署的时候,有时我们在修改一些静态页面或者一些配置文件时,不想热部署在这些文件上作用,这时候我们可以在application.yal文件中进行配置。

spring:
  devtools:
    restart:
      # 设置不参与热部署的文件或文件夹
      exclude: static/**,public/**,config/application.yml

四、关闭热部署配置

关闭热部署,可以在yml文件中将enable设置成false

spring:
  devtools:
    restart:
      # 设置不参与热部署的文件或文件夹
      exclude: static/**,public/**,config/application.yml
      enabled: false

对于有许多配置文件作用时我们想准确的管理热部署,比较好的一种方法是在系统上设置System.setProperty(“spring.devtools.restart.enabled”,“false”);

@SpringBootApplication
public class SSMPApplication {
    public static void main(String[] args) {
        //关闭热部署
        System.setProperty("spring.devtools.restart.enabled","false");
        SpringApplication.run(SSMPApplication.class);
    }

}

你可能感兴趣的:(热部署,java,spring,boot,java,intellij-idea)