首页 > 其他分享 >014-热部署

014-热部署

时间:2023-07-31 17:33:47浏览次数:30  
标签:部署 spring 应用程序 3.2 014 devtools restart

1.什么是热部署

热部署是指在应用程序运行过程中,无需停止整个应用程序,就可以重新加载被修改过的代码,并让新的代码生效。这大大提高了开发效率,节省了重启应用程序所需的时间。

2.热部署有哪些优势

  1. 提高开发效率:热部署允许开发人员在应用程序运行时进行代码修改,无需重新启动整个应用程序。这样可以节省大量的开发时间,避免反复编译和部署的等待时间,从而提高开发效率。
  2. 实时反馈和调试:使用热部署,开发人员可以立即查看对代码的更改所做的实际效果,无需重新启动应用程序或重新加载资源。这种实时的反馈和调试能力能够加速开发过程,加快问题定位和修复的速度。
  3. 减少停机时间:传统的部署方式往往需要停止应用程序,部署更新后重新启动,导致应用程序在此期间无法提供服务。而热部署可以在不停止应用程序的情况下应用变更,从而减少停机时间,确保应用程序的持续可用性。
  4. 提高系统可用性:由于热部署允许在运行时应用变更,系统无需停机即可进行更新。这意味着可以实现零停机更新或滚动更新,使系统保持高可用性,用户可以持续使用应用程序,而不会受到更新过程的影响。
  5. 快速迭代和测试:热部署使得开发团队能够快速进行迭代和测试。通过快速部署和验证代码变更,团队可以更快地实现功能开发、产品改进和修复问题,从而提高整体的迭代速度。

3.如何对热部署进行集成

我们在烛火博客中是通过idea进行集成的.主要对视图页面进行热部署处理

3.1. 添加依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
</dependency>

3.2.修改配置文件

3.2.1. 热部署相关属性说明

属性

默认值

说明

spring.devtools.restart.enabled

true

指定是否启用应用程序的自动重启。true:自动重启;false:禁用自动重启

spring.devtools.restart.additional-paths


指定需要监视变化并触发重启的附加路径。可以使用逗号分隔多个路径。

spring.devtools.restart.exclude


指定需要排除的路径或文件模式,不对其进行监视重启。

spring.devtools.restart.quiet-period

400ms

指定重启的"安静期",即两次重启之间的最小时间间隔。

spring.devtools.restart.poll-interval

1s

指定文件系统的轮询间隔,用于检查是否有代码发生变化

spring.devtools.restart.exclude-autoconfiguration


指定需要排除的自动配置类,这些类将不会被重新加载

spring.devtools.restart.log-condition-evaluation-delta

false

指定是否在日志中记录条件评估的时间间隔变化

3.2.2. 修改配置文件

spring: 
	# 需要关闭缓存 在开启热部署的时候
  thymeleaf:
    cache: false
  devtools:
    restart:
      enabled: true

3.2.3. 修改idea配置信息

3.2.3.1. 开启代码自动编译

打开idea的配置信息 Build >> Compiler > 选中 Build project automatically

014-热部署_应用程序

014-热部署_应用程序_02

3.2.3.2. 设置允许程序运行时自动编译

3.2.3.2.1. 第一种方式

首先录入ctrl+shift+alt+/打开注册页面

查找到compiler.automake.allow.when.app.running并选中

014-热部署_spring_03

014-热部署_应用程序_04

3.2.3.2.2. 第二种方式

有的版本会找不到compiler.automake.allow.when.app.running

可以通过配置文件Advanced Settings下面找到

014-热部署_spring_05

3.2.4. 热部署测试

014-热部署_应用程序_06


标签:部署,spring,应用程序,3.2,014,devtools,restart
From: https://blog.51cto.com/cykj20210317/6910609

相关文章

  • webpack项目本地dev环境正常,部署至微信字体或图片报cors
    由于webpack设置了高于xxx大小的文件不打包,又与小程序平台的域名不一致导致的问题。修改limit,将其调大,以base64方式直接嵌在页面中(字体文件也适用)......
  • 某交易平台客服系统源码搭建部署
    近期我公司与宁德鸿凯网络科技有限公司达成合作,为其产品鸿凯交易平台等搭建客服系统,提供全源码客服系统搭建部署。项目需求客户公司的客服比较多,有四五十个,需求是能够将客服系统用于公司多部门下的用户咨询接待,多部门的客服坐席智能自动分配接待,并且能互相转接用户等。后期,需......
  • 手把手教你在云环境炼丹(部署Stable Diffusion WebUI)
    前几天写了一篇《手把手教你在本机安装StableDiffusion秋叶整合包》的文章,有些同学反映对硬件的要求太高,显卡太TM贵了。今天我再分享一个云服务器炼丹的方法,方便大家快速入门上手,这个云服务不需要特殊网络设置,能连接公网网盘,随开随用,有3090显卡,也有4090显卡,不过我经常使用的是A5......
  • Linux集群监控部署: prometheus 普罗米修斯 + Grafana
    前言之前我们有用到top、free、iostat等等命令,去监控服务器的性能,但是这些命令,我们只针对单台服务器进行监控,通常我们线上都是一个集群的项目,难道我们需要每一台服务器都去敲命令监控吗?这样显然不是符合逻辑的,Linux中就提供了一个集群监控工具–prometheus。prometheus监......
  • bitwarden 私有化部署android无法登陆问题解决
    安卓版bitwarden安装使用中登陆提示“发生错误。Exceptionmessage:java.security.cert.CertPathValidatorException:Trustanchorforcertificationpathnotfound.”这个错误是因为Bitwarden的证书文件中缺少中间证书导致安卓系统的证书校验异常解决方式,生成带证书链的证......
  • Mac部署AIGC图片生成服务——基于stable-diffusion
    Mac部署AIGC图片生成服务——基于stable-diffusionAIGC即人工智能内容生成,是目前非常火的一个概念。随着各种大模型的问世,通过AI来生成内容的能已经越来越强大。本文将从应用实践方面进行介绍如何在自己的PC电脑上部署一个强大的AI图片生成服务。关于AI绘图,我相信你一定不太陌生,......
  • 离线Linux部署k8s集群环境
    ***********离线部署安装k8s集群环境***********1.机器配置master192.168.245.2014核4gnode1192.168.245.2024核4gnode2192.168.245.2034核4g系统内核:3.10.0-957.el7.x86_642.添加颜色echo"PS1='\[\033[35m\][\[\033[00m\]\[\033[31m\]\u\[\033[33m\]\[\033[3......
  • DNS部署与安全
    1.DNS提供域名解析服务2.域名组成 www.主机名+sina.com.cn域名“主机名.域名”称为完全限定域名,主机名可以变,域名全球唯一www.baidu.com.  "."是根域,根域下的com是一级域名,类推下面的。DNS端口TCP/UDP53DNS解析种类:递归解析与迭代解析(方式) 客户机指向的服务器叫......
  • Postgresql 在Ubuntuserver 22.04上部署
    安装与卸载系统环境:1.ubuntu22.04server安装1.检查是否已经安装#psql服务sudoservicepostgresqlstatus#版本查看psql--version2.安装命令#更新安装源内容sudoapt-getupdate#postgresql-contrib额外特性安装sudoaptinstallpostgresqlpostgresql......
  • 阿里云Centos环境部署springboot项目
    JDK安装直接云安装即可yuminstall-yjava-1.8.0-openjdk,java-version查看.MySQL安装下载~~选择CompressedTARArchive选择Linux-通用;x8664~~云安装5.7版本推荐!卸载mariadb如下命令以此执行rpm-qa|grepmarirpm-e--nodepsmariadb-libsrpm......