spring-boot 热替换(hot swapping)

限时加码!20+主流AI编程工具免费用 购周边加赠Coding Plan Lite,Claude Code、Cursor等即刻畅享,学习进阶更高效! 阅读详情

文档相关内容:https://docs.spring.io/spring-boot/docs/current/reference/html/using-boot-devtools.html

pom中引入如下依赖:

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

注意事项:

Triggering a restart

As DevTools monitors classpath resources, the only way to trigger a restart is to update the classpath. The way in which you cause the classpath to be updated depends on the IDE that you are using. In Eclipse, saving a modified file causes the classpath to be updated and triggers a restart. In IntelliJ IDEA, building the project (Build -> Build Project) has the same effect.

在eclipse里保存代码会触发代码构件和tomcat的自动重启,在idea里代码是自动保存的,需要点击build->build project才能触发tomcat自动重启

添加例外

默认情况下,这些目录里的文件变更不会触发重启:

/META-INF/maven, /META-INF/resources, /resources, /static, /public, /templates

如果想修改这些默认设置:

spring.devtools.restart.exclude=static/**,public/**

如果想在默认设置上追加例外设置,使用如下属性:

spring.devtools.restart.additional-exclude

默认情况下,只有classpath下的文件变更才会触发重启,如果想增加额外目录,使用:

spring.devtools.restart.additional-paths

hotswap-module:无需任何代码更改即可将Node.js模块替换为另一个模块 热插拔模块 在没有任何代码更改的情况下,用任何应用程序中的另一个模块的返回值替换require('some-module')的返回值。 安装 npm install hotswap-module --global CLI用法 以下三个命令均运行script.js文件,并将对require('stream')任何调用替换为require('readable-stream') 。 如果未安装hotswap-module ,只需使用npx运行它: npx hotswap-module stream readable-stream script.js 如果全局安装了hotswap-module : hotswap-module stream readable-stream script.js 如果将hotswap-module作为依赖项安装: HOTSWAP=stream,readab 立即下载

相关推荐

Spring bean 动态注册,jar包热替换

Spring bean 一般通过配置文件和注解进行加载,如果要实现jar或class文件,动态实现spring bean 的动态加载,并通过UrlClassLoader完成jar和class文件的加载。可以实现jar的热替换spring的bean动态加载则需要对相应的bean进行动态注册,以及jar与class文件动态加载。测试示例中是spring boot 的部分代码,动态加载的内容为接口实现类,且初始化时加载本地的实现类,动态加载后改为非程序加载目录中的jar实现类。

SpringBoot基于函数替换的热重载

SpringBoot项目每次启动都很慢,有时候调试仅仅是改一点点东西,就要重启工作效率太低,希望能修改完代码,执行快捷键后就把该类的修改生效。(仅限于Bean的修改生效)

zhouhaolin的博客 553

基于STM32F334C8T6的四开关Buck-Boost双向DC-DC电源设计与实现(附源码、仿真与计算书)

本文详细介绍了基于STM32F334C8T6的四开关Buck-Boost双向DC-DC电源设计方案。该设计利用STM32的高分辨率定时器(HRTIM)实现精确PWM控制,支持Buck、Boost和Buck-Boost三种工作模式自动切换,具备双向能量流动能力。通过PSIM仿真和Mathcad计算书进行参数优化,实测效率达95.8%,适用于新能源系统和电池管理等场景。

www00的博客 496

热加载、热部署,体验hotswap

Java应用程序运行时升级软件,无需重新启动的方式有两种,热部署和热加载。 热加载 热加载即在在运行时重新加载class,实现原理主要依赖java的类加载机制,是在运行时通过重新加载改变类信息,直接改变程序行为。在实现方式可以概括为在容器启动的时候起一条后台线程,定时的检测类文件的时间戳变化,如果类的时间戳变掉了,则将类重新载入。 生产环境中,由于热加载这种直接修改jvm中字节码的方式是难以监控的,不同于sql等执行可以记录日志,直接字节码的修改几乎无法记录代码逻辑的变化,对既有代码行为的影响难.

haponchang的博客 1475

Java Hotswap

Link: http://www.ibm.com/developerworks/cn/java/j-lo-hotswapcls/ Download: http://download.csdn.net/detail/yellowxz/6331851 Hotswap简单说来就是实现自定义的ClassLoader,载入类的时候使用自定义的ClassLoader。复写loadClass方法,在其中动态

John Wong's Blog 1100

JVM之-----热部署hotswap

热部署是在不重启 Java 虚拟机的前提下,能自动侦测到 class 文件的变化,更新运行时 class 的行为。       目前的 Java 虚拟机只能实现方法体的修改热部署,对于整个类的结构修改,仍然需要重启虚拟机,对类重新加载才能完成更新操作。对于某些大型的应用来说,每次的重启都需 要花费大量的时间成本。虽然 osgi 架构的出现,让模块重启成为可能,但是如果模块之间有调用关系的话,这

nameix的博客 9756

Hotswap: 在线热更新Go代码的完整解决方案

Hotswap: 在线热更新Go代码的完整解决方案 Hotswap 是一个致力于无需重启服务器即可刷新Go代码的库,它确保了过程的连续性且不对正在进行的任务造成干扰。本教程将指导您了解其基本的项目结构、关键入口点以及配置相关事项。 1. 项目目录结构及介绍 Hotswap 的项目结构精心设计,便于开发者理解和扩展。以下是核心组件的概览: hotswap/ ├── cli ...

gitblog_00385的博客 1088

Spring Boot 开发环境热部署(HotSwap)详解

点击上方“猿芯”,选择“设为星标”后台回复"1024",有份惊喜送给面试的你原文https://blog.csdn.net/zzuhkp/article/details/123518123前言Spring Boot 提出了多项开箱即用的功能特性,但归根到底还是围绕简化应用的创建、开发、运行。开发环境下我们经常对项目代码进行变动,如果每次都重新启动应用会浪费我们大量时间,...

716

Hot swapping 热启动

Hot swapping 热启动 https://docs.spring.io/spring-boot/docs/1.5.9.RELEASE/reference/htmlsingle/ 【19.5 Hot swappingHot swapping 热插拔,我们也叫他热启动,修改程序时无需手动重启服务器就能预览程序的改变, 一、配置 Developer tools 1、pom中引入开发者工具(停...

zhang_cl_cn的博客 791

SpringBoot热替换,亲测可用

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34221773的博客 712

Spring Boot实现热部署(hot swapping)

实现Spring Boot的热部署(hot swapping)

SnailTyan 1832

热部署简易替换方案spring-loaded

以下内容以web项目为例,实现热部署。 主要使用到的spring-loaded开源项目,maven地址: http://mvnrepository.com/artifact/org.springframework/springloaded,建议下载jar包。 springloaded简介 Spring Loaded是一个JVM代理,用于在JVM运行时重新加载类文件。与’热代码替换’不同的是,一旦JVM运行(例如对方法体进行更改),只允许进行简单的更改,Spring Loaded允许允许你动态得新增/修改/

陈铁男的博客 990

SpringBoot应用项目插件开发☞Jar包热更新

基于SpringBoot框架的JAR包插件式开发,通过实现自定义的ClassLoader配合定时器功能实现指定目录下JAR包的热部署和热更新,从而实现线上系统"无感式"功能的快速升级!

Appleyk的专栏 2万+

spring-boot 热加载实现替换Jrebel

导读: 本文主要说说,在玩spring-boot时,我们经常要遇到重启服务这种浪费时间的事情,为了割掉这个痛点,我们一般有2中方式实现。 一个是springload , 另外一个是 spring-boot-devtools 方式1:springload springload 的Maven配置为如下: spring-loaded是一个开源项目,项目地址:https://github.com/...

weixin_34302798的博客 172

热修复

热修复: 当线上应用出现紧急BUG,为了避免重新发版,并且保证修复的及时性而进行的一项在线推送补丁的修复方案。 插件化: 一个程序划分为不同的部分,以插件的形式加载到应用中去,本质上它使用的技术还是热修复技术,只是加入了更多工程实践,让它支持大规模的代码更新以及资源和SO包的更新。 参考 热修复——深入浅出原理与实现 ...

just Go! 572

spring中热更新-bean实例

在日常开发中我们经常听到一种技术:热更新;简单来说就是:不需要重启应用即可随着你配置的更新,更新相关bean的属性。

asd529735325的博客 1844

spring bean 动态替换

系统发展到一定程度就会面临分库分表的问题,我们要考虑的是怎么让系统平滑的从老的表迁移到新的表。通常新表的数据可以通过binlog同步的方式同步老表的数据,在某一个时间点通过开关的方式让读写老表的操作切换到新表。这里就涉及到如何方便的切换新老操作。 加入了新表,必须要有新表的DAO,现在的问题是如何根据开关调用新老DAO来执行操作。先说下目标: 能够方便的实现开关切换。 对现有代码侵入尽量的少

ykdsg的专栏 5684

spring 运行时替换 单例bean 实现

spring bean 运行时动态更换,实现类似热部署

weixin_39660224的博客 3420

spring-boot 热加载实现替换

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34387468的博客 316

SpringBoot-Swapper的使用

SpringBoot-Swapper的使用 1、导入maven依赖 2.x版本导入两个依赖 访问路径为:http://127.0.0.1:8080/swagger-ui.html <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.9.2</versio

qq_44255146的博客 1265
上一篇: @SpringBootApplication 注解的使用
下一篇: 背包问题(python)
viclao
博客等级 码龄17年 4粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值