在 Spring Boot Mustache 教程中,我们将使用 Mustache 模板引擎和 HSQLDB 数据库创建一个简单的 Spring Boot Web 应用。
Spring 是流行的 Java 应用框架。 Spring Boot 致力于创建独立的,基于生产级别的基于 Spring 的应用,而无任何麻烦。
HSQLDB 是完全用 Java 创建的开源关系数据库管理系统。 它提供了一个小型,快速的多线程事务型数据库引擎,具有基于内存和基于磁盘的表,并支持嵌入式和服务器模式。 它包括一个功能强大的命令行 SQL 工具和简单的 GUI 查询工具。
Moustache
Moustache 是一个简单的 Web 模板系统。 它可用于许多编程语言,包括 Java。 由于没有任何显式的控制流语句(例如 if 和 else 条件语句或 for 循环),因此,Mustache 被描述为无逻辑的。 可以使用节标记处理列表和 lambda 来实现循环和条件评估。
Spring Boot Moustache 示例
以下示例是使用 Mustache 模板引擎的 Spring Boot Web 应用。 应用的数据位于 HSQLDB 数据库中。
这是项目结构。 模板文件的后缀为.html
。 它们默认位于src/main/resources/template
目录中。 当在 Maven POM 文件中找到依赖项时,Spring Boot 会自动配置 Mustache。
pom.xml
这是 Maven 构建文件。 spring-boot-devtools
启用热插拔,禁用模板缓存并启用实时重新加载。 spring-boot-starter-mustache
是用于使用 Mustache 构建 Spring MVC 应用的入门程序。 hsqldb
是 HSQLDB 的驱动程序。 spring-boot-starter-jdbc
是在 Spring Boot 中使用 JDBC 的入门工具。
Car.java
这是Car
bean 类。 它包含汽车 ID,名称和价格字段。
application.yml
application.yml
是主要的 Spring Boot 配置文件。 context-path
定义 Web 应用的名称。 我们通过localhost:8080/myapp/
URL 访问我们的应用。 使用banner-mode
属性,我们可以关闭 Spring 标语。 该平台值用于 SQL 初始化脚本:schema-${platform}.sql
和data-${platform}.sql
中。 另外,我们将 spring 框架的日志记录级别设置为 ERROR。
注意,我们没有配置数据源。 如果没有配置数据,Spring 会以内存模式自动配置 HSQLDB。 我们希望有一个内存数据库,因此我们让 Spring 进行自动配置。
schema-hsqldb.sql
该 SQL 脚本创建CARS
表。 HSQLDB 使用IDENTITY
子句创建自动增加的列。 默认情况下,id 从零开始。
data-hsqldb.sql
该脚本用数据填充表。 这两个脚本都位于类路径的根目录中。
ICarService.java
ICarService
提供了一种从数据源获取所有城市的合同方法。
CarService.java
CarService
包含findAll()
方法的实现。 我们借助JdbcTemplate
从CARS
表中检索所有汽车。
注入JdbcTemplate
。
这是要执行的 SQL。 我们从CARS
表中选择所有汽车。
BeanPropertyRowMapper
将一行转换为指定映射目标类的新实例。
MyController.java
这是 Spring Boot Web 应用的控制器类。 控制器被饰以@Controller
注解。 控制器具有两个映射:一个用于主页的映射,一个用于列出所有汽车的映射。 当 Spring Boot 在 Maven POM 文件中检测到 Mustache 启动程序时,它会自动配置 Mustache 视图。
我们将ICarService
注入到带有@Autowired
注解的字段中。
"index"
是位于预定义template
目录中的视图的名称。
该控制器方法可提供汽车清单。 我们从汽车服务中找到所有汽车对象,并将结果列表放入参数中。 Spring 将找到名为showCars
的 Mustache 视图,并让引擎将模板与数据结合在一起。
style.css
style.css
是位于src/main/resources/static/css
目录中的静态文件。 它将 h2 标签设置为蓝色,并右对齐第三列的数据。
index.html
index.html
模板文件是应用的主页。 它包含一个检索所有汽车对象的链接。
showCars.html
showCars.html
是 Moustache 模板文件,其中包含要用来自模型的数据填充的占位符。 小 Moustache 使用{{}}
语法。
我们包括静态 CSS 文件。
{{#cars}}
语法称为段。 部分根据当前上下文中键的值,将文本块渲染一次或多次。 一节以{{#name}}
开头,以{{/name}}
结束。 如果该值是非空列表,则该部分将显示多次。 在每种情况下,该节的上下文都将设置为列表中的元素。
Application.java
我们设置了 Spring Boot 应用。 @SpringBootApplication
注解启用自动配置和组件扫描。
Figure: Listing cars
该应用部署在内置的 Tomcat 服务器上,该服务器侦听端口 8080。
在本教程中,我们使用 Mustache 和 HSQLDB 创建了一个 Spring Boot Web 应用。