springboot热部署该怎么实现?springboot热部署实现方式

Spring家族博大精深,我之前讲过该如何搭建一个简单的springboot项目,这次我们就来深入探讨一下springboot,比如,你们知道springboot该如何搭建热部署吗?下面就来为大家讲解一下springboot该如何搭建热部署。

springboot热部署该怎么实现?

spring-boot-devtools 是一个为开发者服务的一个模块,其中最重要的功能就是自动应用代码更改到最新的App上面去。原理是在发现代码有更改之后,重新启动应用,但是比速度比手动停止后再启动还要更快,更快指的不是节省出来的手工操作的时间。

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

Springboot中搭建热部署三种方式

一、使用springloaded配置pom.xml文件,使用mvn spring-boot:run启动

在原来的pom.xml文件中添加如下配置

org.springframework.boot
spring-boot-maven-plugin
org.springframework
springloaded
1.2.6.RELEASE

注:是在spring-boot-maven-plugin中添加dependency

二、使用springloaded本地加载启动,配置jvm参数

-javaagent:-noverify

1.下载springloaded工具包到一个指定目录(我是直接使用的maven仓库地址)

2.在启动项目时,在jvm参数中输入命令

-javaagent:D:Maven
epositoryorgspringframeworkspringloaded1.2.6.RELEASEspringloaded-1.2.6.RELEASE.jar 
-noverify

扩展: -javaagent:命令后面跟冒号,意思是在执行main方法之前执行特定代码

-noverify 关闭java字节码校验功能

三、使用devtools工具包部署,优点是操作简单,容易上手,缺点是每次都需要重新部署

在pom.xml中添加依赖

org.springframework.boot
spring-boot-devtools
true

添加完后直接启动就是,但是需要等项目加载完后才能查看结果,会很慢。

小结:

在开发测试环境建议使用第三种,即方便又快捷

但是在生产环境下,建议使用第二种,使用脚本启动,否则会十分繁琐

devtools的重启速度快,这个和其原理是有关系的,它监听了路径下的文件变动,重启的时候只是加载有变动的class,不重新加载第三方的jar包。如果有三方包的变化还是要手动重启加载的。

我整理了一些java技术资料和面试题集,供大家提升进阶,不管你是要入门学习还是想面试跳槽巩固基础,都可以免费领取一份。

下面展示部分截图,文末附免费下载方式。

第一篇:基础篇

图片

第二篇:JVM 篇

图片

第三篇:多线程 &并发篇

图片

第四篇:Spring 篇

图片

第五篇:MyBatis 篇

图片

第六篇:Spring Boot 篇

图片

第七篇:MySQL 篇

图片

第八篇:Redis 篇

图片

第九篇:Spring Cloud 篇

图片

第十篇:Nginx 篇

图片

第十一篇:MQ 篇

图片

第十二篇:数据结构与算法篇

图片

第十三篇:Linux 篇

图片

第十四篇:简历篇

图片

最后

整份文档一共有将近 200 页,为了不影响大家的阅读体验就只展示了部分内容,希望能帮助到您面试前的复习且找到一个好的工作,也节省大家在网上搜索资料的时间来学习!

需要的小伙伴点击下方名片,扫码免费领取。

猜你喜欢

转载自blog.csdn.net/weixin_45987729/article/details/124929233