SpringBoot整合Freemarker实现页面静态化的详细步骤

 更新时间:2022年10月26日 09:13:46   作者:梁云亮  
这篇文章主要介绍了SpringBoot整合Freemarker实现页面静态化,第一步要创建项目添加依赖,本文分步骤给大家详细讲解,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

第一步:创建项目添加依赖:

<!--web和actuator(图形监控用)基本上都是一起出现的-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
</dependency>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>

第二步:修改application.yml文件:

spring:
  freemarker:
    charset: UTF-8  #设定Template的编码
    suffix: .ftl #后缀名
    template-loader-path: classpath:/templates/  #模板加载路径,多个以逗号分隔,默认: [“classpath:/templates/”]
    cache: false  #缓存配置,是否开启template caching
    enabled: true #是否允许mvc使用freemarker

第三步:在resources/templates目录下创建模板文件index.ftl:

<html>
	<head>
		<title>${title}</title>
	</head>
	<body>
		<h2>${msg}</h2>
	</body>
</html>

第四步:创建代码静态化工具类:

@Component
public class GenUtil {

    //创建Freemarker配置实例
    @Resource
    private Configuration configuration;

    /**
     * 根据模板,利用提供的数据,生成文件
     *
     * @param sourceFile 模板文件,带路径
     * @param data       数据
     * @param aimFile    最终生成的文件,若不带路径,则生成到当前项目的根目录中
     */
    public void gen(String sourceFile, String aimFile, Map<String, Object> data) {
        try {
            //加载模板文件
            Template template = configuration.getTemplate(sourceFile);
            Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(aimFile), StandardCharsets.UTF_8));
            template.process(data, out);
            out.flush();
            out.close();
        } catch (IOException | TemplateException e) {
            e.printStackTrace();
        }
    }

}

第五步:静态化测试

@SpringBootTest
public class GenTest {
    @Resource
    private GenUtil genUtil;
    @Test
    void fun(){
        Map<String, Object> map = new HashMap<>();
    	map.put("title", "首页");
    	map.put("msg", "好好学习,天天向上!");
    	FreemarkerUtil.execute("index.ftl", "haha.html", map);
    }
}

测试

运行测试代码发现在当前项目根目录下生成了一个haha.html的文件。

到此这篇关于SpringBoot整合Freemarker实现页面静态化的文章就介绍到这了,更多相关SpringBoot整合Freemarker内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 解决Spring配置文件中bean的property属性中的name出错问题

    解决Spring配置文件中bean的property属性中的name出错问题

    这篇文章主要介绍了解决Spring配置文件中bean的property属性中的name出错问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • Java中I/O输入输出的深入讲解

    Java中I/O输入输出的深入讲解

    Java的I/O技术可以将数据保存到文本文件、二进制文件甚至是ZIP压缩文件中,以达到永久性保存数据的要求,下面这篇文章主要给大家介绍了关于Java中I/O输入输出的相关资料,需要的朋友可以参考下
    2022-08-08
  • springboot实现发送短信验证码的示例代码

    springboot实现发送短信验证码的示例代码

    项目里面有用到用户手机号注册发短信功能,本文主要介绍了springboot实现发送短信验证码的示例代码,具有一定的参考价值,感兴趣的可以了解一下
    2023-09-09
  • java实现优酷视频地址解析示例代码分享

    java实现优酷视频地址解析示例代码分享

    最近做了一个在线视频的下载器,需要解析youku的视频,获得真正的视频地址,现在把解析过程记录下来以供参考
    2014-01-01
  • 基于openeuler的DataGear部署文档

    基于openeuler的DataGear部署文档

    本文详细介绍了如何在openEuler操作系统上安装和配置JDK以及DataGear,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2025-03-03
  • idea推送项目到gitee中的创建方法

    idea推送项目到gitee中的创建方法

    这篇文章主要介绍了idea推送项目到gitee中的创建方法,本文通过图文实例相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-08-08
  • Java从入门到起飞之数组使用详解

    Java从入门到起飞之数组使用详解

    这篇文章主要介绍了Java从入门到起飞之数组使用的相关资料,包括数组的声明、初始化、长度、索引、遍历和默认值等内容,还介绍了Arrays工具类中常用的方法,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-03-03
  • springMVC中@RequestParam和@RequestPart的区别

    springMVC中@RequestParam和@RequestPart的区别

    本文主要介绍了springMVC中@RequestParam和@RequestPart的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-06-06
  • spring boot接收请求常用注解示例详解

    spring boot接收请求常用注解示例详解

    这篇文章介绍了Spring Boot中常用的接收请求的注解,包括`@RequestBody`、`@PathVariable`、`@RequestParam`和`@DateTimeFormat`,并提供了每个注解的示例,感兴趣的朋友跟随小编一起看看吧
    2025-02-02
  • Maven发布封装到中央仓库时候报错:no default secret key

    Maven发布封装到中央仓库时候报错:no default secret key

    这篇文章主要介绍了Maven发布封装到中央仓库时候报错:no default secret key,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12

最新评论