FreeMarker是一个使用广泛的开源的模板引擎框架,主要用于在Java应用程序中对文本生成的输出,比较常用的场景就是动态网页、电子邮件模板、配置文件等等。通过模板与数据模型的结合,生成最终我们需要的内容。在很多代码生成框架中也是通过这种方式进行代码的生成。下面我们就来详细的介绍一下如何在Spring Boot3中整合FreeMarker技术。
FreeMarker简介
FreeMarker本质上是一个模板引擎,通过将数据模型(通常是Java对象)和模板(通常是.ftl文件)结合生成文本输出,在FreeMarker的输出中它并不关心应用程序的业务逻辑或数据模型,只是简单的根据传递的模板和数据生成最终的输出。所以从本质上来讲,它就是一个模板提供工具,下面我们就来看看具体的操作步骤。
如何在Spring Boot3中使用?
创建项目并添加FreeMarker依赖
首先,需要创建一个Spring Boot3的项目,然后在POM文件中添加上FreeMarker的配置依赖。
org.springframework.boot
spring-boot-starter-freemarker
通过上面的依赖,就可以自动的将FreeMarker与Spring Boot进行整合,接下来就是添加FreeMarker的视图解析配置,如下所示。
spring:
freemarker:
prefix: classpath:/templates/
suffix: .ftl
charset: UTF-8
cache: false
这样在Spring Boot中就会自动添加上FreeMarkerConfigurer、FreeMarkerViewResolver等配置,然后会从src/main/resources/templates路径下找到.ftl后缀的文件进行加载并解析。
创建FreeMarker模板
接下来就是在src/main/resources/templates目录下创建扩展名是.ftl的FreeMarker模板文件,如下所示。
Hello
Hello, ${name}!
创建Controller处理请求
接下来就通过SpringBoot的Controller的@Controller注解来处理映射并返回对应的动态模板信息,如下所示。
package com.example.demo.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class HelloController {
@GetMapping("/hello")
public String hello(Model model) {
model.addAttribute("name", "Spring Boot");
return "hello"; // 返回模板文件名,不需要后缀
}
}
总结
通过上面的配置,我们就可以完成Spring Boot 3和FreeMarker的整合,由于Spring Boot3中默认就支持了对于FreeMarker的配置,所以通过简单的配置就可以完成与FreeMarker的整合,如果需要更加复杂的自定义功能,我们可以通过自定义的配置来让FreeMarker提供更加丰富的功能支持。
Tags:freemarker循环list