freemark最常用的应用于发送邮件模板变量的替换,存储的模板格式为html格式
发送邮件时需要预先设置好.ftl模板,并且调整好格式, 模板里面的变量以${}标识
需要导入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
创建一个freemark工具类
package com.example.common.util;
import cn.hutool.core.util.StrUtil;
import freemarker.template.Configuration;
import freemarker.template.Template;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import org.springframework.ui.freemarker.FreeMarkerTemplateUtils;
import javax.annotation.Resource;
import java.util.Map;
@Component
@Slf4j
public class FreemarkerUtils {
@Resource
private Configuration stringConfiguration;
/**
* 根据模板构建
* @param content 模板内容
* @param dataModel 模板数据
**/
public String buildByTemplate(String content, Map<String,Object> dataModel){
return buildByTemplate(content, dataModel, StrUtil.EMPTY);
}
/**
* 根据模板替换变量,得到变量替换后的内容
* @param content 模板内容
* @param dataModel 模板数据
* @param defaultString 构建失败返回的默认值
**/
public String buildByTemplate(String content, Map<String,Object> dataModel,String defaultString) {
try {
return FreeMarkerTemplateUtils.processTemplateIntoString(new Template("", content, stringConfiguration),
dataModel);
}catch (Exception e){
log.warn("解析模板失败", e);
}
return defaultString;
}
}