前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >springboot(8)-热部署

springboot(8)-热部署

作者头像
叔牙
发布于 2020-11-19 07:14:42
发布于 2020-11-19 07:14:42
4120
举报

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

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

一)新建应用&添加依赖

新建项目之后,除了添加springboot基础依赖之外,还要添加spring-boot-devtools:

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter</artifactId>

</dependency>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

</dependency>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-devtools</artifactId>

</dependency>

二)修改ide配置&浏览器缓存禁用

为了实现热部署,ide要支持自动编译,并且验证的时候要禁用浏览器缓存(否则看不到变更后内容)。

1.修改idea配置

在idea中打开File->Settings->Compile,勾选Build project automatically:

使用快捷键Ctrl+Shift+Alt+/,选择Registry,然后勾选Compiler autoMake allow when app running:

这样我们就在服务端启用了在应用运行期间自动编译和构建。

2.禁用浏览器缓存

本例中我们使用chrome测试,如果不禁用缓存,后端应用动态部署后前端请求可能看不到变更和新增内容,点击F12或者Ctrl+Shift+i后,在network选项中勾选Disable cache:

三)编码&测试

编写一个简单的Controller:

@RestController

public class IndexController {

@GetMapping("/hello")

public String hello() {

return "hello";

}

}

启动应用后浏览器输入http://localhost:8080/hello:

应用启动没有问题并且能够接收和处理请求。修改Controller增加如下内容:

@GetMapping("/name")

public String name() {

return "my name is shuya";

}

保存后发现应用自动重新编译启动,浏览器输入http://localhost:8080/name:

请求能够被正常的接收和处理,也就是说明我们配置的springboot热部署已经生效。

总结

springboot热部署在开发阶段特别实用,我们对应用修改之后不需要手动点构建和部署就能自动重启后看到效果,当然可能springboot实现热部署还有其他方式,这里暂不做过多探讨,有兴趣的可以自己研究一下。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-10-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 PersistentCoder 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
HTTP应知应会知识点复习手册(上)
HTTP 1.1支持长连接(PersistentConnection)和管线化(Pipelining)处理,在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和延迟。
Rude3Knife的公众号
2019/08/06
5780
一文搞懂什么是HTTP与HTTPS
简单来说,它是计算机通过网络进行通信的一个规则,是一个基于请求与响应,无状态,应用层的协议,长基于 TCP/IP协议传输数据。目前我们常见的终端之间都必须按照 Http 协议进行,否则无法连接。
Petterp
2022/02/09
1K0
一文搞懂什么是HTTP与HTTPS
技术债:HTTP/HTTPS
HTTP 是一种 超文本传输协议(Hypertext Transfer Protocol)
看、未来
2022/08/11
3830
技术债:HTTP/HTTPS
《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(4)-会话面板和HTTP会话数据操作详解
Fiddler抓取到的每条http请求(每一条称为一个session),会话列表 主要是Fiddler所抓取到的每一条http请求都会显示到这里。主要包含了请求的ID编号、状态码、协议、主机名、URL、内容类型、body大小、进程信息、自定义备注等信息,如下图所示:
北京-宏哥
2022/08/19
1.6K0
《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(4)-会话面板和HTTP会话数据操作详解
学HTTP协议所要知道的基础知识(微总结)
1、网络本质 进行资源共享和信息传输。 2、基于网络的应用程序的本质 就是获取数据和传输数据给用户使用。 3、TCP/IP协议栈工作流程 实体层是不属于TCP/IP协议栈的一层。也就是说TCP/IP协议栈共计四层。 首先得接入网络,局域网或者广域网,在计算机接入网络的时候,也就是插入网线的时候本地路由器中的   路由表会更新数据,通过一定淘汰机制算法删除很久没有使用过的计算机ip以及mac地址,并对新加入组的计算 机新分配ip,在分配ip的过程中,路由表会通过ARP协议(地址解析协议)得到新接入计
汪凡
2018/05/29
6630
【面经】 HTTP 基础知识
大家好,我是图图。也有一个多月没有写文章了。由于各种原因,被迫提桶,真是艰难。经过几轮的面试之后,被面试官虐得惨惨的,其中许多原因是没有仔细的学过 HTTP 的知识,我对这块的知识相对来说比较薄弱,所以决定把数据结构和算法得先放一放了。所以把 HTTP 的知识学一遍,然后再补一下JS的基础。
后端码匠
2021/05/10
7200
【面经】 HTTP 基础知识
Fiddler 抓包工具 - 全网最全最细教程,没有之一
Fiddler 是位于客户端和服务器端的 HTTP 代理 目前最常用的 http 抓包工具之一 功能非常强大,是 Web 调试的利器
测试小琳达
2021/10/12
5.4K0
《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(5)-Fiddler监控面板详解
 按照从上往下,从左往右的计划,今天就轮到介绍和分享Fiddler的监控面板了。监控面板主要是一些辅助标签工具栏。有了这些就会让你的会话请求和响应时刻处监控中毫无隐私可言。监控面板是fiddler最核心的功能之一。记录了来自于服务器端(webServer)的请求会话。包括页面的请求和静态文件的请求。状态面板主要显示的是会话及会话的状态。
北京-宏哥
2022/08/19
1.5K0
《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(5)-Fiddler监控面板详解
图解Http协议
泥瓦匠记得和左潇龙【博客园】上次聊天时,龙哥问了个Session的问题。我当时的理解就是云里雾里,先从Http协议理解开始吧。
二哥聊运营工具
2021/12/17
5530
图解Http协议
TCP/IP(七)之玩转HTTP协议
前言   前面一篇的博文简单的介绍了一下属于应用层的HTTP协议,这一篇我将详细的学习HTTP协议,这也是做Web开发中一定要用到的协议。虽然我是做大数据的,但是多学习一点肯定是   没有坏处的。国庆放假7天,很多人都是想着怎么玩,我也很想出去玩,但是没有办法,努力才能有出路,加油! 一、HTTP协议概述 1.1、HTTP协议简介   1)协议:计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则,超文本传输协议(HTTP)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送
用户1195962
2018/01/18
1.3K0
TCP/IP(七)之玩转HTTP协议
web service基础知识
<!-- p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px '.PingFang SC'; color: #454545} p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Helvetica Neue'; color: #454545} p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Helvetica Neue'; color: #454545; min-height: 14.0px} table.t1 {border-collapse: collapse} td.td1 {border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #aaaaaa #aaaaaa #aaaaaa #aaaaaa; padding: 1.0px 5.0px 1.0px 5.0px} -->
超蛋lhy
2018/08/31
1.3K0
web service基础知识
HTTP协议web开发知识点
超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。
changxin7
2019/09/29
5430
HTTP基础知识
HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议。
mcxfate
2020/08/02
6180
《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(2)-初识Fiddler让你理性认识一下
  今天的理性认识主要就是讲解和分享Fiddler的一些理论基础知识。其实这部分也没有什么,主要是给小伙伴或者童鞋们讲一些实际工作中的场景,然后隆重推出我们的猪脚(主角)-Fiddler。
北京-宏哥
2022/08/19
1.7K0
《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(2)-初识Fiddler让你理性认识一下
HTTP 简明基础知识
HTTP超文本传输协议(HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。它是一个客户端和服务器端请求和应答的标准(TCP)。 客户端是终端用户,服务器端是网站。通过使用Web浏览器、网络爬虫或者其它的工具,客户端发起一个到服务器上指定端口(默认端口为80)的HTTP请求,服务器端响应报文的过程。本文简要描述http以及web网站的一些基础知识供大家参考。 一、什么是http http,超文本传输协议(HyperText
Leshami
2018/08/13
3760
HTTP 简明基础知识
HTTP初始(一)
HTTP是由HTTP请求和HTTP响应构成的。那么如何来发起一个HTTP请求呢?简单来说,你只要在浏览器网址栏中输入一个网址(URL),按下回车那么一个HTTP请求就发出了,界面发生了跳转或者数据发生了改变,就表明一个HTTP响应反馈来了。
东边的大西瓜
2022/05/05
6040
HTTP初始(一)
http和https
http:超文本传输协议,是互联网上应用很广泛的一个网络协议。它负责完成客户端到服务端的一系列操作,专门用来传输HTML的超媒体文档等web内容。他是基于TCP协议的应用层协议。http协议是以明文方式发送信息的,所以安全层很低。
Cloud-Cloudys
2020/07/06
5850
【HTTP】HTTP基本知识
​写在前面的话,这篇文章是作者参考网上的帖子的一个整理,参考资料较多,作为Http的入门文章,以供学习使用~
灰子学技术
2020/04/13
7570
【HTTP】HTTP基本知识
HTTP知识点总结
最近互联网这个圈子不是很太平,继阿里缩招降薪,导致很多同学“被拥抱变化”之后,百度也宣布暂时停止社招了。于是有人疾呼“Winter is coming”,有人跟风有人反驳,一时唇枪舌剑,热闹得紧。不过身为一名技术人员,这些言论看看也就是了,市场或许真的会起变化,但也不见得是坏事,大浪淘沙,有能耐的总会留下。人常说站在风口,猪也能飞。如果风真的停了,那摔死的也就是些飞猪。像我这种,压根没站在风口也从没起飞的猪,还是脚踏实地加紧锻炼,争取更快更高更强好了。
Sheepy
2018/09/10
6140
计算机网络知识(TCP连接,TCP/UDP区别,HTTP与HTTPS,Socket原理等等)
1、网络七层协议包含,物理层、数据链路层、网络层(ip协议)、传输层(TCP传输控制协议、UDP用户数据报协议)、会话层、表示层、应用层(http协议)。是一个提供的概念架构协议。
别先生
2019/12/20
2.4K0
计算机网络知识(TCP连接,TCP/UDP区别,HTTP与HTTPS,Socket原理等等)
推荐阅读
相关推荐
HTTP应知应会知识点复习手册(上)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文