微服务项目学习之FreeMarker

微服务项目学习之FreeMarker

FreeMarker是什么

FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据,并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。

模板编写为FreeMarker Template Language (FTL)。它是简单的,专用的语言, 不是 像PHP那样成熟的编程语言。 那就意味着要准备数据在真实编程语言中来显示,比如数据库查询和业务运算, 之后模板显示已经准备好的数据。在模板中,你可以专注于如何展现数据, 而在模板之外可以专注于要展示什么数据。
这种方式通常被称为 MVC (模型 视图 控制器) 模式,对于动态网页来说,是一种特别流行的模式。 它帮助从开发人员(Java 程序员)中分离出网页设计师(HTML设计师)。设计师无需面对模板中的复杂逻辑, 在没有程序员来修改或重新编译代码时,也可以修改页面的样式。

而FreeMarker最初的设计,是被用来在MVC模式的Web开发框架中生成HTML页面的,它没有被绑定到 Servlet或HTML或任意Web相关的东西上。它也可以用于非Web应用环境中。

FreeMarker 是免费的,基于Apache许可证2.0版本发布。

FreeMarker用来进行页面静态化

什么是页面静态化

我们都知道:
静态页面内容稳定,加载速度快。
但是静态网页如果没有数据库的支持,那么在网站制作和维护方面的工作量都会很大。静态网页的交互性大,有很大的局限性。
动态网页呢,交互性好。读取数据都要从数据库读取,每打开一个页面都需要去访问数据库,如果访问量过多的话,会对服务器造成压力,从而会影响网站的运行速度。
通过以上对比,想要提升网站的性能,让我们的网页既能有动态网页的交互性,又能有静态网站的加载速度。我们可以采用把动态页面静态化。把页面静态化的目的,就是降低http请求的个数,从而降低对数据库的操作,从而提高网站的运行速度。这样用户在访问的时候就是一个提前生成好的一个静态页面。
FreeMarker可以帮我们实现这样的需求。

页面静态化流程

1、获取模型数据
2、制作模板
3、对页面进行静态化
4、将静态化生成的html页面存放文件系统中
5、将存放在文件系统的html文件发布到服务器
页面静态化流程图

快速入门

1.创建工程
创建Spring Boot工程时勾选FreeMarker并加入依赖

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

2.配置文件

server: 
	port: 8088 #服务端口 
spring: 
	application: 
		name: test‐freemarker #指定服务名 
	freemarker: 
		cache: false #关闭模板缓存,方便测试 
		settings: template_update_delay: 0 #检查模板更新延迟时间,设置为0表示立即检查,如果时间大于0会有缓存不方便 进行模板测试

3.创建模型类

package com.xuexi.test.freemarker.model;
 
import lombok.Data; 
import lombok.ToString; 
import java.util.Date; 
import java.util.List; 
@Data 
@ToString 
public class Student { 
	private String name;//姓名 
	private int age;//年龄 
 }

4.创建模板
在 src/main/resources下创建templates,此目录为freemarker的默认模板存放目录。 在templates下创建模板文件test1.ftl,模板中的${name}最终会被freemarker替换成具体的数据。

<!DOCTYPE html> 
<html> 
<head>
	<meta charset="utf‐8"> 
	<title>Hello World!</title> 
</head> 
<body> Hello ${name}! 
</body> 
</html>

5.创建controller
创建Controller类,向Map中添加name,最后返回模板文件。

package com.xuexi.test.freemarker.controller; 

import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.stereotype.Controller; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.client.RestTemplate; 
import java.util.Map; 
@RequestMapping("/freemarker") 
@Controller 
public class FreemarkerController { 
	@Autowired 
	RestTemplate restTemplate; 
	@RequestMapping("/test1") 
	public String freemarker(Map<String, Object> map){ 
		map.put("name","人人人"); 
		//返回模板文件名称 
		return "test1"; 
	} 
}

6.创建启动类

@SpringBootApplication 
public class FreemarkerTestApplication { 
	public static void main(String[] args) { 
			SpringApplication.run(FreemarkerTestApplication.class,args); 
		} 
}

其它的内容参考FreeMarker中文参考手册

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
课程简介:历经半个多月的时间,Debug亲自撸的 “企业员工角色权限管理平台” 终于完成了。正如字面意思,本课程讲解的是一个真正意义上的、企业级的项目实战,主要介绍了企业级应用系统中后端应用权限的管理,其中主要涵盖了六大核心业务模块、十几张数据库表。 其中的核心业务模块主要包括用户模块、部门模块、岗位模块、角色模块、菜单模块和系统日志模块;与此同时,Debug还亲自撸了额外的附属模块,包括字典管理模块、商品分类模块以及考勤管理模块等等,主要是为了更好地巩固相应的技术栈以及企业应用系统业务模块的开发流程! 核心技术栈列表: 值得介绍的是,本课程在技术栈层面涵盖了前端和后端的大部分常用技术,包括Spring Boot、Spring MVC、Mybatis、Mybatis-Plus、Shiro(身份认证与资源授权跟会话等等)、Spring AOP、防止XSS攻击、防止SQL注入攻击、过滤器Filter、验证码Kaptcha、热部署插件Devtools、POI、Vue、LayUI、ElementUI、JQuery、HTML、Bootstrap、Freemarker、一键打包部署运行工具Wagon等等,如下图所示: 课程内容与收益: 总的来说,本课程是一门具有很强实践性质的“项目实战”课程,即“企业应用员工角色权限管理平台”,主要介绍了当前企业级应用系统中员工、部门、岗位、角色、权限、菜单以及其他实体模块的管理;其中,还重点讲解了如何基于Shiro的资源授权实现员工-角色-操作权限、员工-角色-数据权限的管理;在课程的最后,还介绍了如何实现一键打包上传部署运行项目等等。如下图所示为本权限管理平台的数据库设计图: 以下为项目整体的运行效果截图: 值得一提的是,在本课程中,Debug也向各位小伙伴介绍了如何在企业级应用系统业务模块的开发中,前端到后端再到数据库,最后再到服务器的上线部署运行等流程,如下图所示:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值