模板引擎的思考
一、什么是模板引擎?
模板引擎是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的文档(模板文件和数据通过模板引擎生成一个HTML代码)。

二、为什么要使用模板引擎?
这里分为两个方面解释:
第一个方面,以Java为例,那个时候前后端分离的思想还未到现在如此普及,后端开发人员一般都要身兼数职,一般除了写后端代码之外,还得写前端代码,为了提高开发人员的效率,通常在后端项目会引入模板引擎,最常见的就是jsp、freemarker等。
第二个方面,代码生成器,例如若衣、人人开源、Jeesite4、Jeecg等开源项目均带有代码生成器,代码生成器的原理就是基于模板引擎,将公共的东西转换为模板,减去人工手动复制和编写的成本,提高研发效率,一般来说,这种方式适用于另类的前后端分离(后端代码+前端代码仍然在一块,只不过后端做专注于业务数据处理,前端仅仅是渲染)。
三、模板引擎的优缺点有哪些?
Java中常用的模板引擎分别为JSP、FreeMarker、Velocity、Thymeleaf等。
1.JSP
(1)优点
- 功能强大可编写Java代码;
- 支持JSP标签;
- 支持表达式语言;
- 官方标准,用户群广,丰富的第三方jsp标签库;
- 性能良好。jsp编译成class文件执行,有很好的性能表现。
(2)缺点
一旦使用不当会很容易破坏MVC结构。
2.FreeMarker
(1)优点
- 不能编写Java代码,可实现严格的MVC模式;
- 对JSP标签支持良好;
- 内置大量常用功能;
- 宏定义(类似jsp标签)非常方便;
- 使用表达式语言。
(2)缺点
- 非官方标准;
- 用户群体和第三方标签库没有jsp多。
3.Velocity
(1)优点
- 不能编写Java代码,可实现严格的MVC模式;
- 性能良好;
- 使用表达式语言。
(2)缺点
- 非官方标准;
- 用户群体和第三方标签库没有jsp多;
- 对jsp标签支持不友好。
4.Thymeleaf
(1)优点
- 静态html嵌入标签属性,浏览器可以直接打开模板文件,便于前后端联调;
- springboot官方推荐方案。
(2)缺点
- 模板必须符合xml规范。
上面的四种模板引擎我均使用过,在创业公司做的第一个智能酒店管理系统就是采用jsp作为模板引擎,对我在创业公司经历感兴趣的朋友或者打算创业以及已经创业的朋友都可以读读这篇文章:
一位北漂在创业公司的两年
至于freemarker以及volocity、thymeleaf均在我个人博客系统中实践过。
四、模板引擎的应用场景有哪些?
- 代码生成器(源代码生成);
- Web应用开发。
五、总结
无论技术怎么演变,新的诞生,旧的逐渐消亡,但其本质还是不变。
如Java中的Jsp、Vecotiy、Freemarker、Thymeleaf和前端三大流行框架中的Vue.js、React.js、Angular.js,它们最终的本质均为HTML-DOM(超文本标记语言-文档对象模型)。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
2018-05-23 centos7之docker安装