SpringBoot自动配置的模版引擎

news2024/11/16 15:27:18

文章目录

目录

一、Thymeleaf

1.什么是Thymeleaf?

2.什么是模版引擎?

3.JAVA中的SPI(Service Provider interface)机制?

4.META-INF目录是干嘛用的?

总结


前言


一、Thymeleaf

1.什么是Thymeleaf?

        hymeleaf是试用于Web和独立环境的现代服务器端Java模版引擎

  1. 目的:它的主要目标是为您的开发工作流程带来优雅自然的模版-HTML可以再浏览器中正确显示,也可以作为静态原型工作,从而可以在开发团队中加强合作
  2. Thymeleaf拥有适用于Spring Framework模块,与喜欢的工具的大量集成以及插入我自己的功能,对于HTML5JVM Web来来说,Thymelef是理想的选择--尽快它还有很多工作要做
  3. 优点:
    1. 动静分离:Thymeleaf选用html作为模版页,这是任何一块其他模版引擎做不到的,它能使用html通过一些特定标签语法代表其含义,但是未破坏文件接口,即使没有网络,不通过后端渲染也能在浏览器中打开,大大方便界面的测试和修改
    2. Thymeleaf提供标准和spring标准两种语言,可以直接套用模版实现JSTL,OGNL表达式效果,避免每天套模版,改JSTL,改标签的困扰,同事开发人员也可以拓展和创建自定义的方言
      1. JSTL:是java标准标签库,是jsp标准集合,封装了jsp应用的通用核心功能,根据JSTL标签所提供的功能,可以将其分为五个类别:核心标签,格式化标签,SQL标签,XML标签,JSTL函数
      2. OGNL:是对象图导航语言,是一种强大的表达式语言,它相当于一个上下文(OgnlContext)概念,就是一个Map结构(教师 老师 学生)

2.什么是模版引擎?

        (在这里指的是用于Web开发的模版引擎)是为了使用户界面于业务数据(内容)分离而产生的,他可以生成特定格式的文档.用于网站的模版引擎就会生成一个标准的html文档.从字面上理解末班引擎,,最重要的就是模版二字,这个意思就是做好一个模版后套入相对应位置的数据,最终通过Htmdull

      模版引擎的理解:可以形象的做一个比喻:开会!相信你在上学初高中的时候每次开会都要提取布置场地,拿上板凳,收拾场地,而你让了大学之后每次开会再也并不用去机操场了,每次开会都去学校的大会议室,桌子板凳,桌子板凳音响主席团齐全,来个人即可,还可以复用.模拟引擎的功能就类似于我们会议室开会一样开箱即用,将模版设计好之后直接填充数据即可而不需要重新设计整个页面.提高页面和代码的复用性.

3.JAVA中的SPI(Service Provider interface)机制?

  1. 是一种软件设计模式,用与在应用程序中动态的发现和加载组件.SPI的思想是:定义一个接口或者抽象类,然后通过在classpath中定义实现该接口的类来实现对组件的动态发现和加载.
  2. SPI的主要目的是解决在应用程序中使用可插拔组件的问题.比如,一个应用程序可能需要使用不同的日志框架或者数据库连接池,但是这些组件的选择可能取决于运行时的条件.通过使用SPI,应用程序可以在运行时发现并加载适当的组件,而无需在代码中硬编码这些组件的实现类
  3. 在java中SPI的实现方式是通过在META-INF/services目录下创建一个以服务接口全限定名为名字的文件,文件中包含实现该类的全限定名.当应用程序启动时,java的SPI机制会自动扫描classpath中的这些文件,并根据文件中指定的类名来加载实现类
  4. 通过使用SPI,应用程序可以实现更灵活,可拓展的结构,同事也可以避免硬编码依赖关系和增加代码的可维护性

4.META-INF目录是干嘛用的?

  1. jar文件:开发中可以直接用java class文件来运行程序,但是不太方便,所以出现了jar文件来提供发布和运行,jar文件实际上是class文件的zip压缩存档,有很多工具都可以操控这种格式的文件,所以jar文件本身并不能表达应用程序的便签信息.
  2. 为了提供存档便签信息,出现了Manifest.mf文件,jar文件中有一个特定的目录来存放标签信息:META-INF目录,主要应关注其中
  3. 一个名叫manifest.mf的文件,它包含了jar文件的内容描述,在应用程序运行时向JVM提供应用程序的信息
  4. META-INF相当于一个信息包,目录中的文件和目录获得Java 2 平台的认可与解释,用来配置应用程序,扩展程序,类加载器和服务manifest.mf文件,在用jar打包时自动生成
  5. jar文件中都有一个默认产生的META-INF目录和其中的manifest.mf文件 使用jar命令可以直接产生META-INF目录和manifest.mf文件
  6. 说白了META-INF目录实际上就是描述jar文件中的信息的一个目录,目录中除了manifest.mf文件之外其实还是可以配置很多信息的,这些文件都是在应用程序运行的过程中向其提供jar文件的内容描述的.


 

 

总结

参考和学习文档:

Thymeleaf一篇就够了_Big sai的博客-CSDN博客

https://blog.csdn.net/qq_38449518/article/details/82414069?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168619468216800225547647%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=168619468216800225547647&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-2-82414069-null-null.142^v88^control_2,239^v2^insert_chatgpt&utm_term=meta-inf%E6%98%AF%E4%BB%80%E4%B9%88%E6%96%87%E4%BB%B6&spm=1018.2226.3001.4187

感谢尚硅谷spring6的文字教程

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

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

相关文章

使用Photoshop证件照制作

利用Photoshop从普通照片制作出证件照 先取一张普通照片 首先新建一个证件照的图片 分辨率350dpi尺寸大小26mm32mm像素大小358像素(宽)441像素 颜色模式24位RGB真彩色 1,抠图,用魔棒工具三秒钟搞定,如果不太复杂的图像…

USB EHCI知识点

1 EHCI和Companion UHCI端口切换 1.1 ICH6 EHCI 如果PCI控制器包括了伴随控制器,那么USB 2.0 HC(Host Controller)必须作为一个多功能PCI设备使用。伴随HC的功能码必须小于EHCI HC功能码。如果一个 PCI设备仅仅包括一个EHCI控制器&#xff08…

一站式完成车牌识别任务:从模型优化到端侧部署

交通领域的应用智能化不断往纵深发展,其中最为成熟的车牌识别早已融入人们的日常生活之中,在高速公路电子收费系统、停车场等场景中随处可见。一些企业在具体业务中倾向采用开源方案降低研发成本,但现有公开的方案中少有完成端到端的车牌应用…

Blindly Assess Image Quality in the Wild Guided by ASelf-Adaptive Hyper Network

Abstract 真实失真图像的盲图像质量评估(BIQA)一直是一个具有挑战性的问题,因为在野外采集的图像包含各种各样的内容和各种类型的失真。目前绝大多数的BIQA方法都专注于如何预测合成图像的质量,但当应用于真实世界的失真图像时却失败了。为了应对这一挑…

Android Activity和Fragment的对比

参考来源 参考来源 参考来源 状态方法对比 onAttach() 作用:fragment已经关联到activity,这个时候 activity已经传进来了, 获得activity的传递的值 就可以进行 与activity的通信里, 当然也可以使用getActivity(),前提是这个fragm…

在CSDN逮到一个阿里10年老测试,聊过之后收益良多...

老话说的好,这人呐,一但在某个领域鲜有敌手了,就会闲得蛋疼。 前几天我在上班摸鱼刷CSDN的时候认识了一位阿里测试大佬,在阿里工作了10年,因为本人天赋比较高,平时工作也兢兢业业,现在企业内有…

ChatGPT - 基于 ChatGLM-6B 搭建私有 ChatGPT 在线聊天服务

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://blog.csdn.net/caroline_wendy/article/details/131104546 Paper:GLM: General Language Model Pretraining with Autoregressive Blank Infilling 一篇于2022年发表在ACL会…

平面坐标变换(单应性变换/Homography变换)

单应性(homography)变换用来描述物体在两个平面之间的转换关系,可以用于描述平移、翻转、缩放、旋转、仿射变换等。其是对应齐次坐标下的线性变换,可以通过矩阵表示: 其中,H为单应性变换矩阵,假设变换前坐标为(x,y)&am…

指针--按值调用与模拟按引用调用,非法访问内存

在前面的章节介绍过普通变量作函数参数的方法&#xff0c;它其实是一种按值调用&#xff08;Call by Value&#xff09;的方法&#xff0c;即程序将函数调用语句中的实参的一份副本传给函数的形参。 例题&#xff1a;演示程序按值调用的例子。 #include <stdio.h> void…

关于ASO优化的搜索指数

搜索指数指数可以看出该关键词的热度&#xff0c;每一个关键词都对应着相应的指数&#xff0c;它代表着有多少人在搜索这个词。同一个词搜索的人越多&#xff0c;该关键词的热度指数就越高。 在应用商店内每天都会有用户去搜索应用&#xff0c;那么关键词的热度值至少是100。热…

三分钟免费将 Claude API 接入个人服务

首先我们介绍一下今天的主角 Claude Claude 是最近新开放的一款 AI 聊天机器人&#xff0c;是世界上最大的语言模型之一&#xff0c;比之前的一些模型如 GPT-3 要强大得多&#xff0c;因此 Claude 被认为是 ChatGPT 最有力的竞争对手。Claude 的研发公司是专注人工智能安全和研…

干货|SpringCloud-Eureka注册中心、服务提供者与消费者

内容速览&#xff1a; 一、关于注册中心、服务注册、服务发现 1问&#xff1a;为什么需要注册中心&#xff1f;2问&#xff1a;什么是服务注册&#xff1f;3问&#xff1a;什么是服务发现&#xff1f; 二、关于 Eureka 实现服务注册与服务发现 1.Eureka的特点2.Eureka注册中心…

Linux防火墙学习笔记3

iptables链的概念&#xff1a; 当客户端访问服务器端的Web服务的时候&#xff0c;客户端发送请求报文到网卡&#xff0c;而TCP/IP协议栈是属于内核的一部分。客户端的请求报文会通过内核的TCP协议传输到用户空间的Web服务&#xff0c;而客户端报文的目的地址为Web服务器所监听的…

裸辞后,过于真实...

前言 我从事软件测试行业&#xff0c;我仅从个人体验上说一下裸辞一个月的心路历程。 本人从事软件测试行业9年&#xff0c;主流测试软件都会用&#xff0c;功能&#xff0c;性能&#xff0c;接口&#xff0c;自动化测试都能独立搞定&#xff0c;近5年测试管理经验。年龄31岁…

城市内涝的原因及解决措施

城市内涝是城市面临的一个严重问题&#xff0c;它不仅会影响城市的交通、生产和生活&#xff0c;还会对城市的环境和生态造成破坏。 城市内涝是指由于强降水或连续性降水超过城市排水能力致使城市内产生积水灾害的现象。造成内涝的客观原因是降雨强度大&#xff0c;范围集中。…

Stable Diffusion使用入门教程

本文参考bilibili的链接&#xff1a;B站第一套系统的AI绘画课&#xff01;零基础学会Stable Diffusion&#xff0c;这绝对是你看过的最容易上手的AI绘画教程 | SD WebUI 保姆级攻略_哔哩哔哩_bilibili 目录 一、prompt提示词 1、概况 2、prompt分类 3、提示词的权重分配 4、…

使用 ChatGPT(简单)+ GitHub 存储库创建 C# 聊天机器人

在本指南中&#xff0c;我们将深入探讨使用 ChatGPT 和 C# 构建聊天机器人的过程。我们将涵盖从设置 ChatGPT API 访问到部署聊天机器人的所有内容。让我们开始吧&#xff01; 最后你会发现 GitHub Repo 设置您的 ChatGPT API 访问权限 在我们开始构建我们的聊天机器人之前&…

day4 ARM异常处理

目录 异常 概念 处理机制 ARM异常源 ARM异常模式 ARM异常响应 异常向量表 FIQ和IRQ ARM微架构 指令流水线 多核处理器 异常 概念 处理器在正常执行程序的过程中可能会遇到一些不正常的事件发生这时处理器就要将当前的程序暂停下来转而去处理这个异常的时间异常事件处…

为什么CRM一定要走行业化?

很多企业、很多销售对CRM的负面评价集中在不够贴合行业、不人性化&#xff0c;也就是功能不够细分和实用。因为CRM几乎是所有企业管理系统中最贴近业务实际的&#xff0c;但各行各业的业务千差万别&#xff0c;所以功能完备、使用满意度高的CRM一定是深度行业化、与不同行业业务…

计算机网络第三章——数据链路层(上)

提示&#xff1a;节物风光不相待。桑田碧海须臾改 文章目录 前言3.1.1 数据链路层功能数据链路层功能概述 3.2.1 封装成帧和透明传输封装成帧透明传输组帧的四种方式字符计数法字符填充法零比特填充法违规编码法 3.3.1 差错控制&#xff08;检错编码&#xff09;奇偶校验码CRC循…