springBoot(多模块)热加载

惯例吐槽:不知北方的程序猿是怎么敲代码的。老家最近零度,代码没写几行,手指早就冻得不听使唤了。。。。。。

接上一篇博客(springboot 多模块项目的搭建(以IDEA为例)):https://blog.csdn.net/hj12312/article/details/86692095

       写代码的人,无论是前端还是后端,都希望,代码改动之后都能实现热加载,否则,重启或刷新,时间都用来做这些没有意义的事了。

    首先, pom文件引入如下jar包:

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

application.yml添加如下配置:


spring:
  devtools:
     restart:
       enabled: true
       additional-paths: src/main/java
       exclude: WEB-INF/**

 

Spring Boot 提供了一种方便的方式来部署和运行 Java 应用程序,其中就包括了对部署(hot deployment)的支持,特别是对于 jar 包的更新。所谓加载(Hot Deployment),就是在不重启整个应用的情况下,能够动态地替换正在运行的代码。 在 Spring Boot 中,使用 Hot Reload 功能进行 jar 包的加载主要依赖于两个工具或特性: 1. **Spring DevTools**:这是 Spring Boot 的一个内置模块,当启用 DevTools 时,它会提供自动重新加载(Automatic Restart)功能。当你修改了 jar 文件中的类文件,DevTools 将检测到这些变化,并自动重新加载新的 class 来反映这些更改,从而避免全量重启。这种方式对简单的代码改动非常有效,但对于复杂的改动可能无法实时反映出来,因为只有修改的部分会被刷新。 2. **JVM 持久化类缓存(Class Cache)**:现代 JVM(如 OpenJDK)支持类文件的缓存,Spring Boot 利用了这个特性,即使关闭 DevTools,只要重启时开启 `-Dspring.jmx.enabled=false` 参数,Spring Boot 可能还会尝试在缓存中查找已经存在的类,这样可以减少启动时间。 为了使用 Spring Boot加载,你需要在项目中添加一些配置,例如在 `application.properties` 或 `application.yml` 文件中设置 `spring.devtools.restart.enabled=true`,并且确保使用的是支持部署的版本的 JDK。 相关问题: 1. 怎样启用 Spring Boot 的 DevTools 进行加载? 2. 使用 Hot Reload 对于哪些类型的代码改动最为适用? 3. 开启持久化类缓存对加载有什么影响?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值