springboot使用热部署(超级简单)


前言

在使用springboot进行开发时,因为项目需要,所以动不动都得重启,项目小了还好说,但是项目稍微大点的话,那真是又浪费时间又浪费资源呐,但是由于热部署的存在,让项目重启问题变得如此easy

一、热部署的原理

热部署之所以如此简单,是因为在其底层使用了两个ClassLoader,一个用来加载那些不改变的类,比如说你引入的jar包,另一个用来加载动态的类的被称为restart ClassLoader,这样在代码有变动的时候,会将原来的restart ClassLoader丢弃,重新在new一个restart ClassLoader,由于需要加载的类不是太多,所以实现了较快的重启

二、使用步骤

1.引入依赖

 <!-- 热部署模块 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional> <!-- 这个需要为 true 热部署才有效 -->
        </dependency>





        <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <fork>true</fork>
                </configuration>
            </plugin>
        </plugins>
    </build> 

在这里插入图片描述

2.进行配置

spring.thymeleaf.cache=false
#热部署模块
debug=true
#设置开启热部署
spring.devtools.restart.enabled=true
#页面不加载缓存,修改即时生效
spring.freemarker.cache=false
#设置修改文件后需要重启的目录
spring.devtools.restart.additional-paths=src/main/java 

在这里插入图片描述

  • 我这上面用了spring.thymeleaf.cache=false 来实现页面热部署,即修改了静态页面后不需要重启项目也能立即生效(默认情况下 /resources,/static,/templates,/public这些文件夹下的文件修改不会使应用重启)

3.IDEA中进行配置

  • File-Settings-Compiler-Build Project automatically 进行勾选
    在这里插入图片描述
  • ctrl + shift + alt + / ,选择Registry,勾上 Compiler autoMake allow when app running

在这里插入图片描述

4.测试

  1. 配置完成后重启项目
  2. 在controller中的任意方法中加上 System.out.println(“测试1”);
  3. 在项目启动的情况下修改system.out.println中的内容,然后在浏览器刷新后你会发现控制台会打印出来你所修改的内容
    在这里插入图片描述
    在这里插入图片描述

三、总结

在学习一个自己不会的知识点时,先去搜索相关的博客,记得一定要多搜几篇,多看几篇,看懂之后自己在敲一遍,然后再把自己敲的过程一步一步写在博客里。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值