第三章 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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
表示我来过!
[***.240.166.169]2024年04月06日 23时20分17秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
select下拉框分组展示插件的使用--(select-mania插件的使用)
2019-04-30
Java Lambda表达式的应用--Stream API操作集合框架
2019-04-30
Myslq连接(JDBC)url属性的参数的设置
2019-04-30
关于Spring MVC与前端的交互
2019-04-30
大厂经典面试题:Redis为什么这么快?
2019-04-30
Android之Retrofit基本用法篇
2021-07-03
Netty与网络协议资料整理
2021-07-03
Golang 逃逸分析
2021-07-03
golang实现大数据量文件的排序
2021-07-03
golang中的time包
2021-07-03
2019NOIP D4题 加工领奖
2021-07-03
2021.5.19 JS高级第二天
2021-07-03
啊沙发沙发
2019-04-30
SpringBoot内置Tomcat配置参数
2019-04-30
局部加权回归
2019-04-30
Mysql 入门
2019-04-30
linux 查看文件夹权限
2019-04-30
ubuntu 快捷键
2019-04-30
linux 根目录下文件夹分析
2019-04-30