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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java正确实现一个单例设计模式的示例

    Java正确实现一个单例设计模式的示例

    今天小编就为大家分享一篇关于Java正确实现一个单例设计模式的示例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • WIN7系统JavaEE(java)环境配置教程(一)

    WIN7系统JavaEE(java)环境配置教程(一)

    这篇文章主要介绍了WIN7系统JavaEE(java+tomcat7+Eclipse)环境配置教程,本文重点在于java配置,感兴趣的小伙伴们可以参考一下
    2016-06-06
  • mybatis中批量插入的两种方式(高效插入)

    mybatis中批量插入的两种方式(高效插入)

    MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架。这篇文章主要介绍了mybatis中批量插入的两种方式(高效插入)的相关资料,非常不错,具有参考借鉴价值,感兴趣的朋友一起看看吧
    2016-09-09
  • RocketMQ Broker实现高可用高并发的消息中转服务

    RocketMQ Broker实现高可用高并发的消息中转服务

    RocketMQ消息代理(Broker)是一种高可用、高并发的消息中转服务,能够接收并存储生产者发送的消息,并将消息发送给消费者。它具有多种消息存储模式和消息传递模式,支持水平扩展和故障转移等特性,可以为分布式应用提供可靠的消息传递服务
    2023-04-04
  • SpringCloud Nacos集群搭建过程详解

    SpringCloud Nacos集群搭建过程详解

    Nacos集群不仅仅是服务注册中心,还在微服务架构中发挥着关键的角色,支持多种场景下的服务治理和协调,本文介绍了如何在SpringCloud环境中搭建Nacos集群,为读者提供了一份清晰而详尽的指南,通过逐步演示每个关键步骤,读者能够轻松理解并操作整个搭建过程
    2024-02-02
  • spring mvc 使用kaptcha配置生成验证码实例

    spring mvc 使用kaptcha配置生成验证码实例

    本篇文章主要介绍了spring mvc 使用kaptcha生成验证码实例,详细的介绍了使用Kaptcha 生成验证码的步骤,有兴趣的可以了解一下
    2017-04-04
  • SpringCloud的Gateway网关详解

    SpringCloud的Gateway网关详解

    这篇文章主要介绍了SpringCloud的Gateway网关详解,Gateway 是 Spring Cloud 官方推出的一个基于 Spring 5、Spring Boot 2 和 Project Reactor 的 API 网关实现,本文将介绍 Spring Cloud Gateway 的基本概念、核心组件以及如何配置和使用它,需要的朋友可以参考下
    2023-09-09
  • javaweb设计中filter粗粒度权限控制代码示例

    javaweb设计中filter粗粒度权限控制代码示例

    这篇文章主要介绍了javaweb设计中filter粗粒度权限控制代码示例,小编觉得还是挺不错的,需要的朋友可以参考。
    2017-10-10
  • java接口性能从20s优化到500ms示例详解

    java接口性能从20s优化到500ms示例详解

    这篇文章主要为大家介绍了java接口性能从20s优化到500ms的操作技巧示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • 详解Java序列化机制

    详解Java序列化机制

    这篇文章主要介绍了Java序列化机制的相关资料,帮助大家更好的理解和使用Java,感兴趣的朋友可以了解下
    2020-12-12

最新评论