当前位置: 代码网 > it编程>编程语言>Java > SpringCloud使用spring-boot-devtools 进行热部署的实现

SpringCloud使用spring-boot-devtools 进行热部署的实现

2025年10月27日 Java 我要评论
一、热部署原理springloaded 并不能实现这些修改的热部署。spring-boot-devtools 是一个为开发者服务的模块,其中最重要的功能就是自动实现把更新的应用代码更改到最新的 app

一、热部署原理

springloaded 并不能实现这些修改的热部署。spring-boot-devtools 是一个为开发者服务的模块,其中最重要的功能就是自动实现把更新的应用代码更改到最新的 app 上。其工作原理是在发现代码有更改之后,自动重新启动应用,但是速度 比手动停止后再启动要更快。其深层原理是使用了两个 classloader,一个 classloader 加载那些不会改变的类(例如第三方的 jar 包依赖),另一个 classloader 加载会更改的类,称为 restart classloader。这样在有代码更改的时候,原来的 restart classloader 被丢弃,重新创建一个 restart classloader 加载更新的类,由于所需要加载的类相对而言比较少,所以实现了较快的重启。

二、集成springboot步骤

2.1 步骤一

在项目的pom文件中添加 web 开发的启动器配置。

<dependency>
	<groupid>org.springframework.boot</groupid>
	<artifactid>spring-boot-starter-web</artifactid>
</dependency>

2.2 步骤二

在项目的pom文件中添加 spring-boot-devtools 的依赖配置

<dependency>
	<groupid>org.springframework.boot</groupid>
	<artifactid>spring-boot-devtools</artifactid>
	<optional>true</optional>
	<scope>true</scope>
</dependency>

2.3 步骤三

注意,还需要加入 spring-boot-maven-plugin

<build>
	<plugins>
		<plugin>
			<groupid>org.springframework.boot</groupid>
			<artifactid>spring-boot-maven-plugin</artifactid>
			<configuration>
				<!-- 如果没有该项配置,devtools不会起作用,即应用不会restart -->
				<fork>true</fork>
			</configuration>
		</plugin>
	</plugins>
</build>

三、热部署无效原因排查

开发中如果出现了 spring-boot-devtools 不能实现热部署,一般可能是以下几个原因中的一个引起的,可自行排查:

1、对应的 spring-boot 版本是否正确。本书中使用的是 2.0.0 版本。
2、是否加入了 plugin 以及属性 true>/fork>。
3、eclipse project 是否开启了 build automatically 自动编译的功能。
4、如果设置 springapplication.setregistershutdownhook(false),则自动重启将不再起作用。

到此这篇关于springcloud使用spring-boot-devtools 进行热部署的实现的文章就介绍到这了,更多相关spring-boot-devtools 热部署内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com