Springboot实现热部署

news2024/10/5 21:17:33

目录

1、问题阐述

2、实现方式

3、开始配置 

3.1在pom.xml中添加依赖

3.2devtools配置

3.3修改IDEA配置

3.4测试一下


1、问题阐述

在实际项目开发过程中,每次修改代码就得将项目重启,重新部署,对于一些大型应用来说,重启时间需要花费大量的时间成本。对于一个后端开发者来说,重启过程确实很难受啊。在 Java 开发领域,热部署一直是一个难以解决的问题,目前的 Java 虚拟机只能实现方法体的修改热部署,对于整个类的结构修改,仍然需要重启虚拟机,对类重新加载才能完成更新操作。下面我们就看看对于简单的类修改的热部署怎么实现。

2、实现方式

Springboot中常见的热部署方式有3种:

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

  • 2.使用springloaded本地加载启动,配置jvm参数

  • 3.使用devtools工具包,操作简单,但是每次需要重新部署

3、开始配置 

3.1在pom.xml中添加依赖

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!--devtools热部署-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
            <scope>true</scope>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <fork>true</fork>
                </configuration>
            </plugin>
        </plugins>
    </build>

3.2devtools配置

在application.yml中配置一下devtools

spring:
  devtools:
    restart:
      enabled: true  #设置开启热部署
      additional-paths: src/main/java #重启目录
      exclude: WEB-INF/**
  freemarker:
    cache: false    #页面不加载缓存,修改即时生效

3.3修改IDEA配置

  • (1)File-Settings-Compiler-Build Project automatically
  • (2)ctrl + shift + alt + / ,选择Registry,勾上 Compiler autoMake allow when app running
  • 若(2)没有找到,则在setting->Advanced Settings中寻找

 

 

3.4测试一下

  • 修改类–>保存:应用会重启
  • 修改配置文件–>保存:应用会重启
  • 修改页面–>保存:应用不会重启,但会重新加载,页面会刷新

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

特征选择算法 | Matlab实现基于ReliefF特征选择算法的回归数据特征选择 ReliefF

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 特征选择算法 | Matlab实现基于ReliefF特征选择算法的回归数据特征选择 ReliefF 部分源码 %--------------------

五分钟就可以安装MySQL

目录 ⛈️一.什么是MySQL ⛈️二.为什么要使用MySQL ⛈️三.MySQL有什么优点 ⛈️四.官网&#xff1a; ⛈️五.下载 ⛈️六.安装 ⛈️七.查看 ⛈️八.修改密码 一.什么是MySQL MySQL是一种开源的关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;它使用结…

【Python编程系列】1、Python安装

Python安装 1、下载安装包 官网地址:https://www.python.org/ 进入后,在Downloads菜单下选择python运行的系统环境: 以Windows系统为例,进入后,选择合适的版本下载: 2、安装Python软件包 双击可执行文件exe: 弹出安装窗口后: 我们一般选择"Install Now"的…

Linux 配置dns覆盖默认127.0.0.53

Linux dns默认127.0.0.53&#xff0c;在/etc/resolve.conf中存在 nameserver 127.0.0.53&#xff0c;手动修改无果&#xff0c;每次重启依旧127.0.0.53&#xff0c;因为这是系统生成的文件&#xff0c;resolvectl命令来查dns的配置。 要修改dns&#xff0c;先暂停dns服务&…

6 JSR303校验

6.1 加入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId> </dependency> 6.2 在实体类上加注解 在实体类上加入Validated注解。并且在属性上方加入Emall(messag…

Selenium自动化测试技巧

目录 前言&#xff1a; Selenium自动化 跨浏览器测试中的Selenium 利用正确的定位器 数据驱动的测试 不要依赖特定的驱动程序 选择器顺序 使用PageObjects设计模式 提倡wait避免sleep 关闭Firebug起始页 前言&#xff1a; Selenium是一个广泛使用的自动化测试框架&a…

Android11 Settings加载流程

一、系统设置首页(一级菜单)&#xff1a; 1、Settings 之所以要在此定义空的Activity&#xff0c;是为了外部应用能直接跳转到XX_SettingsActivity界面&#xff0c;因为如果只是fragment的话&#xff0c;外部是没法跳转到fragment界面的&#xff0c;跳转到XX_SettingsActivit…

【无公网IP】在外Windows远程连接MongoDB数据库

文章目录 前言1. 安装数据库2. 内网穿透2.1 安装cpolar内网穿透2.2 创建隧道映射2.3 测试随机公网地址远程连接 3. 配置固定TCP端口地址3.1 保留一个固定的公网TCP端口地址3.2 配置固定公网TCP端口地址3.3 测试固定地址公网远程访问 转载自cpolar极点云文章&#xff1a;公网远程…

Camera API1 使用说明

Camera API2 使用说明 目录 一、开启相机 1.1创建项目 1.2注册权限 1.3配置相机特性要求 1.4 获取摄像头的个数 1.5 根据 ID 获取 CameraInfo facing 1.6 开启相机 1.7 关闭相机 二、预览 2.1认识 Parameters 2.2 设置预览尺寸 2.3添加预览 Surface 2.4 开启和关…

高级篇九、性能分析工具的使用

目录 2、查看系统性能参数3、统计SQL的查询成本&#xff1a;last_query_cost4、 定位执行慢的 SQL&#xff1a;慢查询日志4.1 开启慢查询日志参数4.2 查看慢查询数目4.3 案例演示 2、查看系统性能参数 在MySQL中&#xff0c;可以使用 SHOW STATUS 语句查询一些MySQL数据库服务…

【C++】STL——list介绍及使用

&#x1f680; 作者简介&#xff1a;一名在后端领域学习&#xff0c;并渴望能够学有所成的追梦人。 &#x1f681; 个人主页&#xff1a;不 良 &#x1f525; 系列专栏&#xff1a;&#x1f6f8;C &#x1f6f9;Linux &#x1f4d5; 学习格言&#xff1a;博观而约取&#xff0…

安装Anaconda

一、Anaconda简介 Anaconda&#xff0c;一个开源的Python发行版本&#xff0c;可用于管理Python及其相关包&#xff0c;包含了conda、Python等180多个科学包及其依赖项。当我们需要不同的Pytorch版本的时候&#xff0c;不需要卸载重新安装&#xff0c;可以通过Anaconda创建不同…

短视频抖音账号矩阵系统源码---功能架构示例1

一、短视频账号矩阵系统源码开发服务器集群化处理开发成本更低&#xff08;前提&#xff09; 什么是集群化处理视频内存内耗&#xff1f;集群化处理视频内存内耗是指通过建立集群系统&#xff0c;将视频处理任务分配给多个计算节点进行并行处理&#xff0c;以减少单个计算节点…

氨基酸中间体35309-53-6,cyclo(Asp-Asp),CYCLO(-天冬氨酸-ASP)

&#xff08;文章资料汇总来源于&#xff1a;陕西新研博美生物科技有限公司小编MISSwu&#xff09;​ 试剂基团反应特点&#xff08;Reagent group reaction characteristics&#xff09;&#xff1a; cyclo(Asp-Asp)&#xff0c;35309-53-6&#xff0c;一种氨基酸中间体&…

平衡搜索二叉树——AVL树

AVL树 1. AVL树的概念2. AVL树节点的定义3. AVL树的插入思路4. AVL树的平衡调整思路平衡因子更新思路LL型——右单旋RR型——左单旋LR型——左右旋RL型——右左旋 5. AVL树插入判断平衡调整类型6. AVL树插入的代码实现7. AVL树总结8. AVL树的验证9. AVL树的性能 1. AVL树的概念…

600多个人工智能AI工具汇总(AIGC时代-超级个体的崛起),免费提供和介绍(第一讲)

这里是600多个人工智能AI工具汇总第一讲&#xff0c;每天介绍5个&#xff0c;主要是我写不完教程了&#xff0c;你懂的&#xff0c;视频最后会告诉大家获取方式的。现在请大家同我一起进入AIGC的世界。 第一个&#xff1a;《AIGC时代&#xff1a;超级个体的崛起》用来介绍AIGC…

【AI绘画】用魔法打败魔法,用ChatGPT生成绘画

随着人工智能技术的不断发展&#xff0c;我们可以利用ChatAI这款大语言模型来辅助我们在绘画过程中获得更多创意和灵感。 一、了解AI绘画功能 它可以快速、自动、准确地从大量原始数据中生成新内容&#xff0c;大大提高了内容创作效率&#xff0c;AI绘画使用机器学习算法&…

金色传说:SAP-MM-ME51N/ME52N采购申请增强

文章目录 业务场景一、增强方式:BADI二、增强步骤1.SE18/SE19创建增强实施2.增强代码3.实现效果总结业务场景 在企业中,通常需要控制采购业务中的特殊权限,本次遇到的业务场景:公司启用了SAP的 PPDS模块, 因此,需要控制业务员不能手动使用ME51N创建采购申请.因为标准的权限对象…

LNMP架构及应用部署(搭建电影网站)

目录 一、安装nginx 1、关闭防火墙和selinux 2、安装依赖软件 3、创建管理nginx用户 4、解压源码包 5、安装nginx 6、优化nginx命令 7、检测配置文件是否有错误 8、启动nginx 9、编辑nginx脚本&#xff08;可根据自己需求编辑&#xff09; 二、安装mysql数据库 1、先查看有没有…

Java安全——数字签名

Java安全 数字签名 签名类 签名的jar文件可以通过Java的jarsigner工具进行管理。jarsigner工具使用密钥库中的信息来查找特定的实体&#xff0c;并使用这些信息对jar文件进行签名或验证签名。 要创建签名的jar文件&#xff0c;我们可以使用以下命令&#xff1a; jarsigner…