28、springboot的静态模版(前端页面)重加载和 devtools开发者工具

news2024/11/16 19:34:20

springboot的静态模版重加载和 devtools开发者工具

总结:实现静态模板重加载的两个方法
方法1:在 yml 配置文件,关闭页面模板缓存, 再按 ctrl+f9 重新构建
方法2:直接添加 devtools 依赖,再按 ctrl+f9 重新构建

★ 热插拔

所谓热插拔,其实就是让开发者能实时看到代码修改后的结果。

热插拔是实际开发中非常重要的一个支持。

——如果没有热插拔,意味着开发者无论做了多小的修改,必须等待程序重启后才能看到结果。


hot swap——很多翻译为热交换。

★ 最基础的要求——静态模板的重加载。

要求:当开发者修改了应用的静态模板页面(Thymeleaf、freemarker、groovy template、mustache)。

只要关闭静态页面模板的缓存即可:

在yml配置文件中,各个静态页面模板对应的关闭页面缓存的配置代码:

 spring.thymeleaf.cache=false            #  Thymeleaf模
 spring.freemarker.cache=false           # FreeMarker模板
 spring.groovy.template.cache=false      # Groovy模板
 spring.mustache.template.cache=false    # Mustache模板


▲ 静态模板重加载的注意事项

Spring Boot通过监测类加载路径下文件的改变来实现模板的重加载。

 换而言之:如果类加载路径下(classes目录)的文件没有改变,那Spring Boot就不会触发静态模板的重加载

 如果只是更改了静态资源(比如图片、CSS样式单等),由于它们都不在项目的类加载路径下,
 因此它们都不会触发Spring Boot重加载静态资源。

▲ 由于Eclipse默认开启了自动构建, 因此保存模板页面后会触发重加载;

 保存页面模板 --> 自动构建 --> 类加载路径下文件发生变化 --> Spring Boot静态模板重加载

▲ 由于IDEA默认没有开启自动构建,因此要么先启用自动构建,要么每次修改页面模板后按Ctrl + F9构建项目来触发模板的重加载。

 保存页面模板(src文件发生了改变) --> 没有自动构建 --> 类加载路径下文件没有变化 --> 不触发Spring Boot静态模板重加载

 要么先启用自动构建;要么每次修改页面模板后按Ctrl + F9来构建项目,即可让静态页面重加载。

代码演示:

需求:如果前端使用到 Thymeleaf模板,然后我们在修改前端页面的时候,每次修改后想直接按浏览器的刷新就可以刷新到最新修改的页面,而不用每次都重启项目。

只需要在yml配置文件中添加一些关闭静态页面模板的缓存即可:
如:使用了 Thymeleaf模板,那么在yml配置文件中添加这个 spring.thymeleaf.cache=false配置就可以了,然后 IDEA 需要再按 按Ctrl + F9来构建项目,就可以在静态页面冲加载。

在这里插入图片描述

如果使用开发者工具 spring-boot-devtools ,那么就需要上图那样在yml关闭模板缓存了,这个devtools 已经帮我们完成这些功能了。

直接添加devtools依赖就可以了,就不用在yml配置文件里面关闭模板缓存了。
但是都需要按 Ctrl + F9 来构建一下
在这里插入图片描述

★ 开发者工具

spring-boot-devtools开发者工具具有如下功能:

- 模板自动重加载, 默认就关闭静态的缓存。也就是上面的设置完全可以省略。

- 应用快速重启

- 浏览器实时重加载(LiveReload)

- 各种开发时配置属性(如前面介绍的关闭模板缓存等)

- 将Web日志组(包括Spring MVC和Spring WebFlux)设为DEBUG级别

——上面这些功能,基本上都是为Spring Boot热插拔在提供支持。

★ 开发者工具的注意点

▲ 项目只要添加devtools依赖包,则自动启用devtools开发者工具。

▲ 如果以java -jar xxx.jar的形式运行Spring Boot项目,则默认被当成产品场。

  此时即使项目中包含devtools依赖包,也会自动关闭devtools开发者工具。

  可通过如下系统属性强行启用开发者工具:
  -Dspring.devtools.restart.enabled=true

▲ 为避免安全隐患,打包Spring Boot应用时会自动排除devtools工具。

  如要远程使用devtools功能,这时就需要强制将devtools工具打包进去,

  - 对于Maven构建工具,则需将excludeDevtools属性设为false即可

  - 对于Gradle工具,则需要指定包含developmentOnly依赖库。

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

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

相关文章

c#设计模式-结构型模式 之 代理模式

前言 由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接 引用目标对象,代理对象作为访问对象和目标对象之间的中介。在学习代理模式的时候,可以去了解一下Aop切面编程AOP切面编程_aop编程…

编程练习(2)

一.选择题 第一题: 考察转义字符和strlen函数求解字符串长度 进一步在VS中可以智能看出哪些字符是转义字符: 因此本体答案选择B 第二题: 本体较为简单,宏定义了三个数N,M,NUM,N值为2,M值为3,因此NUM值为8,…

iTOP-RK3588开发板安装TFTP服务端

首先在 ubuntu 中执行以下命令安装 TFTP 服务: apt-get install tftp-hpa tftpd-hpa 安装完成以后创建 TFTP 服务器工作目录,并对 TFTP 的服务配置文件进行修改,具体步骤如下: 输入以下命令在家目录创建 tftpboot 文件夹,如下图所示&#x…

LeetCode[274]H指数

难度:Medium 题目: 给你一个整数数组 citations ,其中 citations[i] 表示研究者的第 i 篇论文被引用的次数。计算并返回该研究者的 h 指数。 根据维基百科上 h 指数的定义:h 代表“高引用次数” ,一名科研人员的 h 指…

SAP 打印条形码

SAP 打印条形码 一 字体维护 1.SE73 2. 3. 4. 5. 6. 7. 二将第一步创建的字体应用到样式 1.SMARTFORMS 2. 三将第二步创建的字符格式应用到表单 1.SMARTFORMS

【24择校指南】中国海洋大学计算机考研考情分析

中国海洋大学(B) 考研难度(☆☆☆☆) 内容:23考情概况(拟录取和复试分析)、院校概况、23专业目录、23复试详情、各科目及专业考情分析。 正文986字,含表格预计阅读:3分钟。 2023考情概况 中…

C语言好题解析(二)

目录 递归类型例题1例题2例题3例题4例题5例题6 递归类型 例题1 根据下面递归函数:调用函数Fun(2),返回值是多少( )int Fun(int n) {if (n 5)return 2;elsereturn 2 * Fun(n 1); } A.2 B.4 C.8 D.16【答案】 D 【分析】 …

深入理解Java中的Object类的equals()和hashCode()

文章目录 1. equals()方法和hashCode()方法的联系1.1 equals()方法1.2 hashCode()方法 2. equals()、hashCode()和集合类的关系2.1 equals()方法的影响2.2 hashCode()方法的影响 3. 示例:重写equals()和hashCode()结论 🎉欢迎来到Java面试技巧专栏~深入理…

2023河南萌新联赛第(六)场:河南理工大学

目录 A 简单的异或 题目: 解析: B 这是dp题吗 题目链接:https://ac.nowcoder.com/acm/contest/63602/B 解析: D 买饼干的小Y 题目:https://ac.nowcoder.com/acm/contest/63602/D 解析: E 不爱吃早…

【jwt】JWT原理,JWT是用来解决什么问题的,如何自定义生成JWT数据,并且实现jwt数据的解码

JWT: JSON Web Token 1. jwt概述 用户登录成功后,服务端 如何知道客户端的每次请求对应的是哪个用户呢?怎么做:目前有两种方式实现. 1.1. 一是通过sessionId的方式,登录成功后服务端返回sessionId给客户端&#xff0…

【机器学习6】数据预处理(三)——处理类别数据(有序数据和标称数据)

处理类别数据 🌱简要理解处理类别数据的重要性☘️类别数据的分类☘️方便研究——用pandas创建包含多种特征的数据集🍀映射有序特征🍀标称特征标签编码🍀标称特征的独热编码🌱独热编码的优缺点 🌱简要理解…

爬虫逆向实战(八)--猿人学第十五题

一、数据接口分析 主页地址:猿人学第十五题 1、抓包 通过抓包可以发现数据接口是api/match/15 2、判断是否有加密参数 请求参数是否加密? 查看“载荷”模块可以发现有一个m加密参数 请求头是否加密? 无响应是否加密? 无cook…

Cat(3):客户端集成—简单案例

接下来编写一个简单的springboot与Cat整合的案例 1 新建springboot项目 首先创建一个Spring Boot的初始化工程。只需要勾选web依赖即可。 2 添加 Maven 添加依赖 <dependency><groupId>com.dianping.cat</groupId><artifactId>cat-client</artifa…

拉丁方设计资料的方差分析(SPSS版+SAS版)

拉丁方设计&#xff08;Latin square design&#xff09;&#xff1a;实验研究中涉及一个处理因素和两个控制因素&#xff0c;每个因素的类别数或水平数相等&#xff0c;此时可采用拉丁方设计&#xff0c;将两个控制因素分别安排在拉丁方设计的行和列上。该设计类型仍为单因素方…

生信豆芽菜-oncoPredict预测药物的敏感性

网址&#xff1a;http://www.sxdyc.com/drugOncoPredict 1、数据准备 准备一个行为基因&#xff0c;列为样本的表达谱矩阵即可 2、选择训练集数据库&#xff0c;提交等待运行成功即可 3、结果 当然&#xff0c;如果不清楚数据是什么样的&#xff0c;可以选择下载我们的示…

无涯教程-Perl - tell函数

描述 此函数返回指定FILEHANDLE中读取指针的当前位置(以字节为单位)。如果省略FILEHANDLE,则它将返回上次访问的文件中的位置。 语法 以下是此函数的简单语法- tell FILEHANDLEtell返回值 此函数以字节为单位返回当前文件位置。 例 以下是显示其基本用法的示例代码,要检…

RTSP/Onvif视频服务器EasyNVR视频监控汇聚平台的实际应用介绍

一、方案背景 在新时代的背景下&#xff0c;公安情报指挥体系建设需要在情报指挥中心为基础&#xff0c;以实现“情报全面精准、指挥集成统一、勤务协同高效、舆情管控有力”的目标。通过建设情指勤舆一体化指挥调度平台&#xff0c;将情报指挥中心打造成社会治安防控体系的核…

2023国考(地市级)判断推理

题目 黑白块 例题 例题 例题 例题

数据库的事务隔离级别(脏读、不可重复读、幻读)

并发事务问题 read uncommitted&#xff0c;存在脏读、不可重复度、幻读 read committed&#xff0c;存在不可重复读、幻读 repeatable read(默认)&#xff0c;存在幻读 serializable&#xff08;串行化&#xff0c;序列化&#xff09;&#xff0c;都不存在 前提&#xff1…

Android内存泄漏总结和性能优化技巧

我们在开发安卓应用时&#xff0c;性能优化是非常重要的方面。一方面&#xff0c;优化可以提高应用的响应速度、降低卡顿率和提升应用流畅度&#xff0c;从而提升用户体验&#xff1b;另一方面&#xff0c;优化也可以减少应用的资源占用&#xff0c;提高应用的稳定性和安全性&a…