第三章 Springboot 热部署
发布日期:2021-06-30 12:36:44 浏览次数:4 分类:技术文章

本文共 3382 字,大约阅读时间需要 11 分钟。

目录

1 原理

平常开发项目时,修改了Java代码或者配置文件之后,需要手动重启项目才能生效。所谓的热部署就是在修改了后端代码之后不需要手动重启,工具会帮你快速的自动重启使修改生效。

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

devtools会监听classpath下的文件变动,并且会立即重启应用(发生在保存时机),因其采用的虚拟机机制,所以重启是很快的。

2 演示环境

  • IDEA 2019
  • Spring Boot Maven项目

3 操作步骤

3.1 在pom.xml文件中添加依赖

org.springframework.boot
spring-boot-devtools
runtime
true
org.springframework.boot
spring-boot-maven-plugin
true
true

完整pm.xml

4.0.0
org.springframework.boot
spring-boot-starter-parent
2.3.3.RELEASE
com.nobody
springboot-devtools
0.0.1-SNAPSHOT
springboot-devtools
Demo project for Spring Boot
1.8
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-devtools
runtime
true
org.springframework.boot
spring-boot-starter-test
test
org.junit.vintage
junit-vintage-engine
org.springframework.boot
spring-boot-maven-plugin
true
true

3.2 IDEA设置

在这里插入图片描述

使用ctrl+shift+a 快捷键搜索Registry,选择搜索出来的第一个,找到compiler.automake.allow.when.app.running,勾上开启此功能。

在这里插入图片描述

4 配置文件说明

如果我们想对热部署进行一些设置,可以在application.properties文件(或者application.yml)添加一些属性变量来修改。

server.port=8081#主要配置#是否启用自动重启功能spring.devtools.restart.enabled=true#重启服务的文件夹目录spring.devtools.restart.additional-paths=src/main/java#不重启服务的文件夹配置spring.devtools.restart.exclude=META-INF/maven/**,META-INF/resouces/**,resources/**, static/**,public/**,templates/**,**/*Test.class,**/*Tests.class,git.properties#非主要配置#是否启用一个livereload.com兼容的服务器#spring.devtools.livereload.enabled=true#端口livereload.com服务器端口#spring.devtools.livereload.port=35729#在原理来的基础上新增不重启服务的文件夹目录#spring.devtools.restart.additional-exclude=#设置对路径变化进行监测的时间间隔(以毫秒为单位)#spring.devtools.restart.poll-interval=1000#在没有改变任何classpath的情况下,在重启被触发前的静默时长(以毫秒为单位)#spring.devtools.restart.quiet-period=400#设置触发条件,当需要实际触发重启检查时,则需要修改这个文件#spring.devtools.restart.trigger-file=

5 项目下载地址

转载地址:https://javalib.blog.csdn.net/article/details/105753453 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Log4j格式化符号%详解
下一篇:第二章 Springboot 自定义banner图案

发表评论

最新留言

表示我来过!
[***.240.166.169]2024年04月06日 23时20分17秒