spring-boot-devtools 实现热部署

news/2024/12/14 13:44:50/文章来源:https://www.cnblogs.com/smallfa/p/18606621

1.devtools

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

2.项目搭建

  本文是采用IDEA搭建的Spring Boot应用,通过spring-boot-devtools配置,可以支持修改java文件会自动重启程序,一些资源无需触发重启,例如thymeleaf模板文件就可以实时编辑。默认情况下,更改/META-INF/maven,/META-INF/resources ,/resources ,/static ,/public 或/templates下的资源不会触发重启,而是触发livereload。devtools模块包含一个嵌入的livereload服务器,可以在资源变化时用来触发浏览器刷新。浏览器需要在livereload.com下载安装扩展。 例如Chrome浏览器在应用商店安装livereload插件后,在要自动刷新的页面点击对应的图标,启动应用后更新页面内容或者css等都会触发页面自动刷新。

3.livereload

  livereload 通过引入的脚本livereload.js在 livereload 服务和浏览器之间建立了一个 WebSocket 连接。每当监测到文件的变动,livereload 服务就会向浏览器发送一个信号,浏览器收到信号后就刷新页面,实现了实时刷新的效果。每次启动时,需要点击对应的图标,如下图所示。

4.项目代码配置

(1)pom.xml配置文件

1
2
3
4
5
6
7
8
9
10
11
12
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-devtools</artifactId>
   <optional>true</optional>
</dependency>
<plugin>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-maven-plugin</artifactId>
   <configuration>
      <fork>true</fork<!-- 如果没有该配置,devtools不会生效 -->
   </configuration>
</plugin>

(2)yml配置

1
2
3
4
5
6
devtools:
  livereload:
    enabled: true #是否支持livereload
    port: 35729
  restart:
    enabled: true #是否支持热部署

5.IDEA配置

(1)File-Settings-Compiler-Build project automatically

(2)ctrl + shift + alt + /,选择Registry,勾上 Compiler autoMake allow when app running

6.安装livereload插件
下载livereload插件,将其安装到chrome扩展程序中,并选中允许访问文件网址。


7.测试
(1)修改类 应用会重启
(2)修改配置文件 应用会重启
(3)修改静态文件(html、css等),应用不会重启,但是会调用livereload,浏览器会自动刷新,显示最新的修改内容。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/852501.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IDEA bean json互转换插件

插件安装步骤:File->Settings->Plugins—>查找所需插件—>Install 或 File->Settings->Plugins—>Install plug from disk —>选择下载好的插件安装 一般插件安装后重启idea即可生效。 一、Java bean 转换 json 的插件 java-bean-to-json 下面详细安装…

转载:【AI系统】计算图的调度与执行

在前面的内容介绍过,深度学习的训练过程主要分为以下三个部分:1)前向计算、2)计算损失、3)更新权重参数。在训练神经网络时,前向传播和反向传播相互依赖。对于前向传播,沿着依赖的方向遍历计算图并计算其路径上的所有变量。然后将这些用于反向传播,其中计算顺序与计算图…

转载:【AI系统】微分实现方式

上一篇文章简单了解计算机中常用几种微分方式。本文将深入介绍 AI 框架离不开的核心功能:自动微分。 而自动微分则是分为前向微分和后向微分两种实现模式,不同的实现模式有不同的机制和计算逻辑,而无论哪种模式都离不开雅克比矩阵,所以我们也会深入了解一下雅克比矩阵的原理…

React16

React16免费基础视频教程 https://www.bilibili.com/video/BV1g4411i7po P1 01_React免费视频课程介绍 https://jspang.com 2019 5年前 react16 16.8.6 https://react.dev/ P2 02_React简介和Vue的对比 P3 03_React开发环境的搭建 npm i -g create-react-app@3.0.0 create-reac…

Input type (torch.cuda.FloatTensor) and weight type (torch.FloatTensor) should be the same

错误报在了forward里的Conv2d处。原因是函数写在forward里可能默认cpu,如果写在init构造函数里,就不需要再指定cuda。 修改为箭头指示就不再报错了。 【参考】 Input type (torch.cuda.FloatTensor) and weight type (torch.FloatTensor) should be the same-CSDN博客

jquery半透明拖拽窗口插件

这是一款jquery半透明拖拽窗口插件。该插件可以在页面生成可以拖拽、最大化、最小化的浮动窗口。在线演示 下载使用方法 在页面中引入style.css、jquery和jquery-translucent.js文件。<link rel="stylesheet" type="text/css" href="style.css&quo…

Marvelous Designer高版本更改界面字体大小

打开软件 打开 设置/用户自定义 - 用户自定义选择用户界面 - 显示 - 自动规模不勾选 - 分辨率选择大重启软件即可

golang:第三方库:用jordan-wright/email发送邮件

一,安装第三方库: $ go get -u github.com/jordan-wright/email go: downloading github.com/jordan-wright/email v4.0.1-0.20210109023952-943e75fe5223+incompatible go: added github.com/jordan-wright/email v4.0.1-0.20210109023952-943e75fe5223+incompatible 二,代…

为了改一行代码,我花了10多天时间,让性能提升了40多倍---Pascal架构GPU在vllm下的模型推理优化

ChatGPT生成的文章摘要 这篇博客记录了作者在家中使用Pascal显卡运行大型模型时遇到的挑战和解决方案。随着本地大型模型性能的提升,作者选择使用vllm库进行推理。然而,作者遇到了多个技术难题,需要自行编译vllm和PyTorch,以支持Pascal架构的显卡。编译过程中,作者深入研究…

vxe-table 实现复选框分页跨页勾选

vxe-table 实现复选框分页跨页勾选 官网:https://vxetable.cn 当使用数据分页与复选框多页勾选时,可以通过 checkbox-config.reserve 启用<template><div><vxe-button status="success" @click="getSelectEvent">获取已选</vxe-but…