SpringBoot 热部署笔记

本文介绍如何使用spring-boot-devtools模块实现SpringBoot应用的热部署,通过修改配置和依赖,达到代码修改后自动重启的效果,极大提升开发效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

why?

目前的Springboot,当发生了任何修改之后,必须关闭后再启动Application类才能够生效,显得略微麻烦。

what?

简述

spring为开发者提供了一个名为spring-boot-devtools的模块来使Spring Boot应用支持热部署,提高开发者的开发效率,无需手动重启Spring Boot应用。

devtools的原理

  • 使用了两个ClassLoader,
  • 一个Classloader加载那些不会改变的类(第三方Jar包),
  • 另一个ClassLoader加载会更改的类,称为restart ClassLoader,
  • 这样在有代码更改的时候,原来的restart ClassLoader 被丢弃,重新创建一个restart ClassLoader,由于需要加载的类相比较少,所以实现了较快的重启时间。

how?

1. 添加依赖的jar包

        <!--  热部署的相关依赖  -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional> <!-- 这个需要为 true 热部署才有效 -->
        </dependency>

确保有这个插件:

            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>

2. 修改配置文件

文件路径:src/main/resources/application.properties
添加的配置:

# jsp映射相关
spring.mvc.view.prefix=/WEB-INF/
spring.mvc.view.suffix=.jsp

#热部署生效
spring.devtools.restart.enabled=true

#设置重启的目录
spring.devtools.restart.additional-paths=src/main/java

# classpath 目录下的WEB-INF文件夹修改不重启
spring.devtools.restart.exclude=WEB-INF/**

# 实现页面文件的热部署
spring.thymeleaf.cache=false

3. 修改idea设置

第一步 File -> settings :
在这里插入图片描述
第二步:在idea界面的右上角有放大镜的搜索功能,搜索 Registry:
在这里插入图片描述

result?

重启后
修改java文件保存后:项目自动重启(重启部分内容)
修改页面文件后,刷新浏览器:显示修改后的内容
修改配置文件:项目自动重启

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值