逐步聚合实例

核心提示1前言在之前的文章Spring Boot 整合 Thymeleaf[1]中,我们学习了如何将模板 Thymeleaf 整合到 Spring Boot 中,那今天我们就来看看,另一个老牌的开源免费模板引擎 - FreeMarker!2Free

Notice: Undefined offset: 36 in /www/wwwroot/wyc/wyc/wyc.php on line 67

Notice: Undefined offset: 37 in /www/wwwroot/wyc/wyc/wyc.php on line 67

1前言在上一篇文章Spring Boot集成百里香叶[1]中,我们学习了如何将模板百里香叶集成到Spring Boot中,那么今天我们就来看看另一个已经建立的开源免费模板引擎——FreeMarker!

2FreeMarker 简介

FreeMarker是一个模板引擎:一个通用工具,它基于要更改的模板和数据,用于生成输出文本。它不是面向最终用户的,而是一个Java类库,一个程序员可以嵌入到产品中的组件。

以上来自FreeMarker的官方定义。通过使用FreeMarker,我们可以将需要的模板和数据渲染成HTML,从而达到想要的效果。通过将模板与数据分离,分工更加明确。模板方面侧重于如何显示数据,而在数据方面,我们可以侧重于显示什么样的数据。下图是如上所述的FreeMarker的功能。

接下来,让我们看看如何像百里香一样将FreeMarker集成到我们的Spring Boot中,以使我们的开发更容易。

3准备工作环境准备

在正式开始之前,还是给出本文所依据的环境,避免环境问题可能给大家带来的影响。

JDK 17

想法

跳羚2.x

添加 FreeMarker 依赖

在开始之前,我们需要添加FreeMarker的相关依赖项。同样,这里我们可以选择两种方式。一种是在项目创建时添加,另一种是在项目创建后,在项目pom.xml文件中手工添加。接下来,让我们来看看如何添加它的两种不同的方式。如果还不清楚如何创建Spring Boot项目,可以参考我之前的文章:创建Spring Boot项目的3种方法[2]。

第一种

当使用IDEA创建一个新的Spring Boot项目时,在添加依赖项时检查模板引擎中的Apache FreeMarker。

2.第二种

如果在创建时没有添加FreeMarker模板引擎依赖,或者在项目创建之初没有添加需求,而是在后续过程中添加的,此时可以直接在项目pom.xml中手工添加FreeMarker依赖。

org.springframework.boot spring-boot-starter-freemarker添加 FreeMarker 相关配置

添加完依赖项后,我们需要在项目配置文件application.yml中添加FreeMarker的相关配置

spring: freemarker: # 模板后缀名 suffix: .ftl # 文档类型 content-type: text/html # 页面编码 charset: UTF-8 # 页面缓存 cache: false # 模板路径 template-loader-path: classpath:/templates/4编写实体类和 Controller编写实体类

创建一个用户类,并完成它的各种设置器、获取器、构造方法等。这里我仍然使用Lombok插件来简化我们的代码。关于这个插件的更多用法,请参考我之前的文章:Lombok的安装和使用指南[3]。

package com.cunyu.springbootfreemarkerdemo.entity;import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;import org.springframework.stereotype.Component;@Component@Data@AllArgsConstructor@NoArgsConstructorpublic class User { private int age; private String name; private String email;}编写 Controller

这里我们创建一个用户对象,然后设置其年龄、邮箱、姓名等相关信息,再添加到属性中,便于传输到前端显示。

package com.cunyu.springbootfreemarkerdemo.controller;import com.cunyu.springbootfreemarkerdemo.entity.User;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.GetMapping;@Controllerpublic class UserController { @GetMapping public String index { User user = new User; user.setAge; user.setEmail; user.setName; model.addAttribute; return "index"; }}数据渲染

实体类和控制器写好了,我们就可以用模板来展示了。我们在项目的资源/模板路径中创建新的index.ftl文件。注意,这里的文件名应该与控制器中index方法返回的字符串一致。

FreeMarker 实验 (全名)${ user . name }
年龄 电子邮件
${user.age} ${user.email}
测试

启动我们的项目,然后在浏览器中访问以下路径:

http://localhost:8080/index

如果显示下图所示的信息,说明我们的集成工作已经成功完成!

5总结

以上是FreeMarker与Spring Boot整合的具体过程。你可以和上一篇文章一起阅读:整合百里香叶和Spring Boot。比较一下百里香和FreeMarker在整合过程中的一些异同,相信你会有更多的收获。

最后,关于本文的案例代码,我已经上传到Github了,有需要的朋友可以自己拿:Portal [4]。

参考资料

[1]file/tupian/20220910/107671467 Spring Boot集成汝叶

[2]

创建file/tupian/20220910/119618308 Spring Boot项目的三种方式

[3]

龙目岛的安装和使用指南:file/tupian/20220910/github _ 39655029/article/details/119992626

[4]

门户:https://github . com/cunyu 1943/Java-learning/tree/main/spring boot-demo/spring boot-freemarker-demo

 
友情链接
鄂ICP备19019357号-22