Spring Boot 使用 spring-boot_starter-web 为 Web 开发提供支持,spring-boot-starter-web 包 含了 Spring Boot预定义的一些Web开发的常用依赖包,为开发者提供了嵌入的Tomcat以及 Spring MVC的依赖。而与Web相关的自动配置支持则保存在spring-boot-autoconfigure.jar的 org.springframework.boot.autoconfigure.web
下面。如图
重要的自动配置支持如下:
- HttpEncodingAutoConfiguration 和 HttpEncodingProperties 用来自动配置 http 的编码。
- JacksonHttpMessageConvertersConfiguration 用来自动配置 Jackson 相关的 Converter。
- MultipartAutoConfiguration 和 MultipartProperties 用来自动配置上传文件的属性。
- ServerPropertiesAutoConfiguration 和 ServerProperties 用来自动配置内嵌的 Servlet 容器。
- WebMvcAutoConfiguration 和 WebMvcProperties 用来自动配置 Spring MVC 功能。
Thymeleaf 模板引擎
SpringBoot建议使用HTML来完成动态页面。SpringBoot提供了大量的模板引擎,包括 Thymeleaf、FreeMarker、Velocity 等。
Spring Boot官方推荐使用Thymeleaf模板引擎来完成动态页面,并且为Thymeleaf提供了 完美的SpringMVC的支持,Thymeleaf模板引擎可以支持纯HTML浏览器展现(模板表达式在脱离运行环境下不污染HTML结构)。
Thymeleaf 概述
Thymeleaf是面向Web和独立环境的现代服务器端Java模板引擎,能够处理HTML、XML、 JavaScript、CSS甚至纯文本,可以作为MVC Web应用层的View层显示数据。
Thymeleaf是一个扩展性很强的模板引擎(实际上它可以称为模板引擎框架),Thymeleaf 允许开发者自定义模板,并且很好地处理该模板的细节。将一些逻辑应用于标记组件(标签、 某些文本、注释或只有占位符)的一个对象被称为处理器,通常这些处理器的集合以及一些额外的组件就组成了 Thymeleaf方言。Thymeleaf的核心库提供了一种称为标准方言的方言,这对大多数用户来说己经足够了。如果用户希望在使用标准方言库的高级功能的同时定义自己的 处理逻辑,也可以创建自己的方言(甚至扩展标准的方言)。
官方的thymeleaf-spring5的整合包里定义了一种称为“Spring标准方言”的方言,该方言 与“Thymeleaf标准方言”大致相同,但是对于Spring框架中的某些功能(例如,通过使用 SpringEL表达式代替OGNL表达式)做了一些简单的调整。使之更完美地匹配Spring MVC, 所以Spring Boot官方推荐使用Thymeleaf完全替代JSP。
Thymeleaf标准方言中的大多数处理器都是属性处理器。这样,即使在模板未被处理之前, 浏览器也可以正确地显示HTML模板文件,因为浏览器将简单地忽略其不识别的属性。例如, 像下面这段JSP模板的代码片段就不能在模板被解析之前通过浏览器直接显示。
<form:inputText name="username" value="${user.username}" />
然而Thymeleaf标准方言将允许实现与上述代码相同的功能。
<input type="text" name="username" value="itxiaoming" th:value="$ {user.username}" />
浏览器不仅可以正确显示这些信息,而且还可以在浏览器中静态打开时显示一个默认的值 (在本例中为“itxiaoming”),在模板处理期间由$ {user.usemame丨的值代替value的默认值。这样 有助于设计师和开发人员处理相同的模板文件,并减少将静态原型转换为工作模板文件所需的工作量。具备这种能力的模板被称为自然模板。
- 邮箱:ithelei@sina.cn
- GoodLuck