IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> Spring Boot 2.x系列【4】功能篇之开发工具devtools使用详解 -> 正文阅读

[Java知识库]Spring Boot 2.x系列【4】功能篇之开发工具devtools使用详解

有道无术,术尚可求,有术无道,止于术。

本系列Spring Boot版本2.7.0

Spring Boot包含一组额外的工具,可以使应用程序开发体验更加愉快。spring-boot-devtools模块可以包含在任何项目中,以提供额外的开发时功能。其中最重要的就是热部署了。

IDEA(2019.3版本)实现热部署

引入spring-boot-devtools后,每当类路径上的文件更改时,就会自动重新启动应用程序。

Spring Boot 提供的热部署技术通过使用两个类加载器来工作。不会更改的类(例如,来自第三方 jar 的类)被加载到基类加载器中。您正在开发的类被加载到重新启动类加载器中。当应用程序重新启动时,重新启动类加载器被丢弃并创建一个新的。这种方法意味着应用程序重新启动通常比“冷启动”快得多,因为基类加载器已经可用并已填充。

1. 引入依赖

首先需要将依赖包导入,optional设置为true,其意思就是其他模块引用该模块时,会排除该依赖。

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

2. 手动执行

可以通过点击Build实现热部署,首先需要点击启动类,然后点击最上方的Build,选择构建当前模块,如果发现源码有改动,就会快速重启。
在这里插入图片描述

3. 自动执行

也可以设置为全自动执行。

按照File ->settings ->Build,Execution,Deployment->Compile路径,找到Build project automatically并勾选,开启自动生成。
在这里插入图片描述
按住Ctrl+Shift+Alt+/ 快捷键弹出 Maintenance 页面,点击Registry,弹出注册表:
在这里插入图片描述
勾选compiler.automake.allow.when.app.running,支持自动重启:
在这里插入图片描述
如果是2021版本IDEA,在高级选项中勾选。
在这里插入图片描述

4. 测试

修改代码,过个十来秒,就发现应用自动重启了。。。

常用配置项

spring:
  devtools:
    restart:
      # 禁用日志报告
      log-condition-evaluation-delta: true
      # 不需要修改触发重启的文件目录
      # 默认:META-INF/maven/**,META-INF/resources/**,resources/**,static/**,public/**,templates/**,**/*Test.class,**/*Tests.class,git.properties,META-INF/build-info.properties
      exclude: application.yml
      # 默认配置下还需要在新增的排除目录
      additional-exclude:
      # 添加需要监视修改文件后重启的路径
      additional-paths:
      # 是否禁用自动重启
      enabled: true

实时重载

spring-boot-devtools模块包括一个嵌入式 LiveReload 服务器,可用于在资源更改时触发浏览器刷新。LiveReload 浏览器扩展插件可从livereload.com免费获得,适用于 Chrome、Firefox 和 Safari浏览器。

如果您不想在应用程序运行时启动 LiveReload 服务器,您可以将该spring.devtools.livereload.enabled属性设置为false(默认时开启的)。

一次只能运行一个 LiveReload 服务器。在启动您的应用程序之前,请确保没有其他 LiveReload 服务器正在运行。如果您从 IDE 启动多个应用程序,则只有第一个具有 LiveReload 支持。

要在文件更改时触发 LiveReload,必须启用自动重启

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-06-16 21:31:54  更:2022-06-16 21:32:44 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 18:59:50-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码