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。

posted @ 2020-06-08 07:09  SpringCore  阅读(446)  评论(0编辑  收藏  举报