Spring Boot2.0 - 基于spring-boot-devtools实现热插拔

在这里插入图片描述

一.你需要准备

  • Spring Boot 2.1.5.RELEASE
  • java 1.8+
  • Maven 3.3+
  • IDEA

二.开发人员工具介绍

Spring Boot包含一组额外的工具,可以使应用程序开发体验更加愉快。该spring-boot-devtools模块可以包含在任何项目中,以提供额外的开发时间功能。要包含devtools支持,请将模块依赖项添加到您的构建中,如如以下Maven和Gradle列表所示:

Maven.

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

Gradle.

configurations {
	developmentOnly
	runtimeClasspath {
		extendsFrom developmentOnly
	}
}
dependencies {
	developmentOnly("org.springframework.boot:spring-boot-devtools")
}

三.配置热插拔

下面我们Maven为例,来实现自动部署新代码的功能:

3.1开启idea自动make功能

使用快捷键CTRL + SHIFT + A --> 查找 --> 选中

在这里插入图片描述

接下来,我们需要重启IDEA;

3.2 填加maven依赖

<!--热插拔-->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-devtools</artifactId>
			<!--表示依赖不会传递-->
			<optional>true</optional>
		</dependency>

3.3 开启热部署

<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<configuration>
					<fork>true</fork> <!-- 如果没有该配置,devtools不会生效 -->
				</configuration>
			</plugin>
		</plugins>
	</build>

3.4关闭热部署

配置完热部署后,默认自动开启,如果需要关闭热部署,可以参考如下方式进行关闭:

3.4.1方式一
@SpringBootApplication
public class MilogeniusWebApplication {

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

}
3.4.2 方式二

在application.yml配置文件中增加如下配置:

spring:
  # 服务模块
  devtools:
    restart:
      # 热部署开关
      enabled: false

四.测试

首先我们启动项目,在尝试修改某个类之后,发现项目自动重启;将热部署开关关闭之后,发现修改某个类,项目不会自动重启;

在这里插入图片描述

五.总结

在Spring Boot 2.1.5.RELEASE版本测试下,我发现不配置true也能实现自动部署新代码,大家可以尝试一下,不知道是不是最新版本已经优化了;

返回专栏目录
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值