Spring Boot和Thymeleaf:重新加载模板和静态资源,而无需重新启动应用程序

Thymeleaf是围绕自然模板的概念设计的,该模板允许进行静态原型制作:模板逻辑不会影响用作原型的模板。 尽管这是一项很棒的技术,但您可能还希望在运行的Spring Boot应用程序中查看结果,而不必每次更改Thymeleaf视图时都重新启动服务器。 此外,您可能希望所有其他静态资源(如JavaScript和CSS文件)也可以在开发期间重新加载。 如何用Spring Boot实现它?

Thymeleaf模板重新加载

在使用Thymeleaf视图引擎的Spring Boot应用程序上工作时,需要两个属性来确保重新加载模板: spring.thymeleaf.cachespring.thymeleaf.prefix 。 将spring.thymeleaf.cache设置为false将禁用模板缓存,而spring.thymeleaf.prefix允许指定在构建视图URL时前缀为视图名称的前缀。

范例(Windows):

spring.thymeleaf.prefix=file:///C:/Projects/github/spring-boot-thymeleaf/src/main/resources/templates/

假设所有模板都在指定的路径中,则更改它们将需要刷新页面,而无需重新启动应用程序/服务器。

这两个属性都可以在开发配置文件中使用(例如,创建application-dev.properties并在dev配置文件处于活动状态时运行应用程序)。

重新加载静态资源(CSS,JavaScript)

使用Spring Boot和Thymeleaf在开发期间重新加载模板相对容易。 如果要重新加载CSS和JavaScript等静态资源,则方法非常相似:您需要使用spring.resources.static-locations

范例(Windows):

spring.resources.static-locations=file:///C:/Projects/github/spring-boot-thymeleaf//src/main/resources/static/

在上面的示例中,只有一个位置,但是该属性接受多个位置。

此外,您可以配置更多与静态资源相关的设置,例如缓存等。请参考Spring Boot文档并了解有关spring.resources.*属性( http://docs.spring.io/spring-boot/docs /current/reference/html/common-application-properties.html )

application-dev.properties

最终的解决方案如下所示:

#
# Development profile with templates and static resources reloading
## Path to project
project.base-dir=file:///C:/Projects/github/spring-boot-thymeleaf# Templates reloading during development
spring.thymeleaf.prefix=${project.base-dir}/src/main/resources/templates/
spring.thymeleaf.cache=false# Static resources reloading during development
spring.resources.static-locations=${project.base-dir}/src/main/resources/static/
spring.resources.cache-period=0

注意:您可以在本文的源代码参考中找到它: HOW-TO:使用Maven的Spring Boot和Thymeleaf

如果您不想创建新的配置文件,则可以在运行应用程序时简单地将属性作为JVM选项( -D )提供。

替代方法– Spring Boot DevTools

Spring Boot的模块之一是DevTools(从1.3版开始)。 在许多功能中,它无需重新配置即可实时重新加载Thymeleaf模板和静态资源。 它还支持LiveReload协议。

注意 :更改模板/资源时,请重新生成项目(在Windows上为CTRL + F9),然后刷新。 当您安装LiveReload插件(我使用Chrome的LiveReload插件进行了测试: https ://chrome.google.com/webstore/detail/livereload/jnihajbhpnppcggbcgedagnkighmdlei)后,页面会自动刷新。

在此处了解更多信息: https : //spring.io/blog/2015/06/17/devtools-in-spring-boot-1-3以及此处: https : //t.co/td23nP73mt

摘要

感谢本文中介绍的技术,您可以使Spring Boot应用程序的前端开发变得更加容易。 但是从生产环境中的类路径之外为您的Spring Boot应用程序提供Thymeleaf模板和静态资源的可能性也可能带来一些优势。 示例之一可能是分离后端和前端部署。

也可以看看

  • 操作方法:Maven的Spring Boot和Thymeleaf
  • GitHub上的Spring Boot和Thymeleaf与Maven

翻译自: https://www.javacodegeeks.com/2016/12/spring-boot-thymeleaf-reload-templates-static-resources-without-restarting-application.html

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

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

相关文章

写cookies注意事项

在调试模式下是无法写到cookie的,因为cookie需要写到域名下,并且需要写的域名和运行的域名一致才能写入。同样在读取cookie时也只能读取到当前域名的cookie,无法读取其他域名的cookie。 比如下面用jquery表示在baidu.com的域名下写入cookie&a…

mysql记录当前表数据的数据条数据类型_mysql的表的操作 数据类型

一 数据类型1 数字:整型:tinyint int bigint小数:float:在位数较短的情况下不精准double:在位数比较长的情况下不精准1 数字整型:tinyint int big小数:float:在位数比较短的情况下不精准double:在位数比较长的…

C++中的继承与虚函数各种概念

虚继承与一般继承 虚继承和一般的继承不同,一般的继承,在目前大多数的C编译器实现的对象模型中,派生类对象会直接包含基类对象的字段。而虚继承的情况,派生类对象不会直接包含基类对象的字段,而是通过一个间接的指针去…

中国科学院大学数学院本科生教材

中国科学院大学数学科学学院本科生教材(不完全统计) 注:不同的任课老师使用不太一样的教材,仅供参考。 一年级: 微积分I-A:《数学分析(第4版)》第1卷,卓里奇,…

sqlite mysql php_PHP实现的简单操作SQLite数据库类与用法示例

本文实例讲述了PHP实现的简单操作SQLite数据库类与用法。分享给大家供大家参考,具体如下:SQLite是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它…

Win7下WinDbg开启Local Kernel Debug调试

问题:在Win7 64bit系统中用管理员权限打开WinDbg开启Local Kernel Debug时报错: The system does not support local kernel debugging. Local kernel debugging requires Windows XP, Administrative privileges, and is not supported by WOW64. Only …

idea 不能及时编译_您是否能及时编译?

idea 不能及时编译还记得上次被C开发人员嘲笑的时候吗? Java如此繁琐,以至于他们甚至都不会考虑使用这种语言? 在许多方面,这一概念仍然成立。 但是对于典型的用法(在大型企业的骨干中),Java性…

接口开发-导读

接下来的这个系列,完全针对“APP接口”开发进行,所以,希望你有一定的Java开发基础、以及一定的接口交互经验。 思来想去,决定按照下面的提纲进行 1. 基于SpringBoot创建基础框架; 2. 集成数据库操作(mybati…

安装mysql显示有5.0_安装MySQL5.0时到如图这一步提示出错了,~

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里云数据库专家保驾护航,为用户…

WinDbg配置和使用基础

WinDbg是微软发布的一款相当优秀的源码级(source-level)调试工具,可以用于Kernel模式调试和用户模式调试,还可以调试Dump文件。 1. WinDbg介绍: Debugging Tools and Symbols: Getting Started http://www.microsoft.com/whdc/devtools/d…

将Wiremock集成到Spring Boot Java Web应用程序中以模拟外部依赖关系

介绍 WireMock是用于基于HTTP的API的模拟服务器。 有些人可能会将其视为服务虚拟化工具或模拟服务器。 它使您能够存根所需的API或其他外部依赖项,以加快本地开发速度。 它支持测试真实API无法可靠产生的极端情况和失败模式。 在模拟单元测试和集成测试中的外部依赖…

windows下node安装

1.首先到node官网进行下载 下载页面中windows版本分两种,这里我们选择.msi进行安装(.zip是免安装的,但需要单独配置环境变量使用) 2.安装过程如下所示 这里可以更改安装的路径 这里默认会将node和npm加到环境变量中 3.验证安装 安…

tab键的转义字符_Python转义字符及用法

在《Python字符串》一节中我们曾提到过转义字符,就是那些以反斜杠\开头的字符。ASCII 编码为每个字符都分配了唯一的编号,称为编码值。在 Python 中,一个 ASCII 字符除了可以用它的实体(也就是真正的字符)表示,还可以用它的编码值表示。这种使用编码值来间接地表示字符的方…

CentOS中通过NAT连接网络

讲正文之前,推荐一个连接:http://wuxinaiaman928.blog.163.com/blog/static/64932144200811911233198/ 里面比较详细的介绍了Vmware中三种不同的连接方式:桥连接,NAT,使用主机网络,有助于理解简单来讲&…

serialport通过usb通讯_IOT串口通讯-RS232/RS485

串口串口是串行接口(serial port)的简称,也称为串行通信接口或COM接口。串口通信是指采用串行通信协议(serial communication)在一条信号线上将数据一个比特一个比特地逐位进行传输的通信模式。串口按电气标准及协议来划分,包括RS-232-C、RS-422、RS485等…

【项目管理和构建】——Maven下载、安装和配置(二)

版权声明:本文为博主原创文章,未经博主允许不得转载。 目录(?)[] 前言 在上篇博文【项目管理和构建】——Maven简介(一)中我们了解到maven是一种全新的项目构建方式,让我们的开发更加简单,高效。Maven主要做的是两件事…

mapreduce 算法_MapReduce算法–顺序反转

mapreduce 算法这篇文章是介绍MapReduce算法的系列文章的另一部分,该书在使用MapReduce进行数据密集型文本处理中找到。 先前的文章是Local Aggregation , Local Aggregation PartII和创建共现矩阵 。 这次我们将讨论阶数反转模式。 顺序反转模式利用的M…

lamp mysql开启命令_mysql lamp 配置命令总结

[email protected] ~]# chown -R mysql:mysql /usr/local/mysql (注:更改MySQL安装目录属主,属组)[[email protected] mysql-5.5.22]# cp support-files/my-medium.cnf /etc/my.cnf (注:复制MySQL配置文件)[[email protected] mysql-5.5.22]#…

算法复杂度分析(下):最好、最坏、平均、均摊等时间复杂度概述

细化时间复杂度分析 代码千千万,有些代码逻辑会很复杂,所以为了更细化的分析算法的复杂度,再复杂度分析方面引入了4个知识点: 1.最好情况时间复杂度(best case time complexity)。 2.最坏情况时间复杂度&am…

梦想成真…教学–专业的Java开发人员:工具和最佳实践

我总是喜欢分享知识。 我写博客的原因之一是分享我在软件工程师方面的知识。 创立并运行(与几个朋友一起)第一个 早在2003年, 希腊的Java用户组就是由于我们在工作中得不到足够的培训或个人开发机会,因此我们希望共享和重用我们作…