SpringBoot视图模板库
Spring非常灵活,能够支持多种常见的模板方案,除个别情况之外,你所选择的视图模板甚至本身并不知道它在于Spring协作。
1.SpringBoot自动装配所支持的模板方案
模板 | SpringBoot Starter依赖 |
FreeMarker | spring-boot-starter-freemarker |
Groovy Templates | spring-boot-starter-groovy-templates |
Java Server Pages(JSP) | 无(由Tomcat或Jetty等Servlet容器提供) |
Mustache | spring-boot-starter-mustache |
Thymeleaf | spring-boot-starter-thymeleaf |
通常来讲,你只需要选择想要的视图模板库,将其作为依赖项添加到构建文件中,然后就可以在“/templates”目录下(在基于Maven或Gradle构建的项目中,它会在“src/main/resources”目录下)编写模板了。
SpringBoot会探测到你所选择的视图模板库,并自动配置为SpringMVC控制器生成视图所需的各种组件。
2.额外说明
JSP并需要在SpringBoot构建文件中添加任何特殊的依赖,这是因为Servlet容器本身(默认是Tomcat)会实现JSP,因此不需要额外的依赖。
但是,如果你选择使用JSP,会有另外一个问题。
事实上,Java Servlet容器(包括嵌入式的Tomcat和Jetty容器),通常会在“/WEB-INF”目录下寻找JSP,如果我们将应用构建成一个可执行的JAR文件,就无法满足这种需求了。
因此,只有将应用构建为WAR文件并部署到传统的Servlet容器中时,才能选择JSP方案。
如果你想要构建可执行的JAR文件,那么必须选择Thymeleaf、FreeMarker等上表中的其它方案。
3.视图模板缓存
默认情况下,视图只会在第一次加载时解析一次,之后的再次请求将会读取缓存。对于生产环境来说,这是一个很棒的特性,它能防止每次请求时多余的模板解析过程,有助于提高性能。
但是在开发阶段,这个特性就不太友好了。因为每次查看变更后的效果需要重新启动引用。
幸运的是,我们可以通过禁用缓存来解决上面的问题
模板 | 启用/禁用模板缓存的属性 |
FreeMarker | spring.freemarker.cache |
Groovy Templates | spring.groovy.template.cache |
Mustache | spring.mustache.cache |
Thymeleaf | spring.thymeleaf.cache |
默认情况下,这些属性都设置为true,以便于启用缓存。我们可以将缓存属性设置为false,从而禁用所选模板引擎的缓存。
唯一需要注意的是,在将应用部署到生产环境之前,一定要删除这一行代码(或将其设置为true)。有一种方法是将该属性设置到profile中,另外一种更简单的方法是使用Spring Boot的DevTools。
作者:奇
出处:https://www.cnblogs.com/fanqisoft/p/13063513.html
版权:本作品采用「本文版权归作者和博客园共有,欢迎转载,但必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!