mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-07-21 15:09:48 +08:00
TemplateConfig
增加setUseCache
方法(issue#IC3JRY@Gitee)
This commit is contained in:
@@ -16,13 +16,14 @@
|
||||
|
||||
package cn.hutool.v7.extra.template;
|
||||
|
||||
import cn.hutool.v7.core.util.CharsetUtil;
|
||||
import cn.hutool.v7.extra.template.engine.TemplateEngine;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.nio.charset.Charset;
|
||||
import java.util.Objects;
|
||||
|
||||
import cn.hutool.v7.core.util.CharsetUtil;
|
||||
import cn.hutool.v7.extra.template.engine.TemplateEngine;
|
||||
|
||||
/**
|
||||
* 模板配置
|
||||
*
|
||||
@@ -30,6 +31,7 @@ import cn.hutool.v7.extra.template.engine.TemplateEngine;
|
||||
* @since 4.1.0
|
||||
*/
|
||||
public class TemplateConfig implements Serializable {
|
||||
@Serial
|
||||
private static final long serialVersionUID = 2933113779920339523L;
|
||||
|
||||
/**
|
||||
@@ -53,6 +55,10 @@ public class TemplateConfig implements Serializable {
|
||||
* 自定义引擎,当多个jar包引入时,可以自定使用的默认引擎
|
||||
*/
|
||||
private Class<? extends TemplateEngine> customEngine;
|
||||
/**
|
||||
* 是否使用缓存
|
||||
*/
|
||||
private boolean useCache = true;
|
||||
|
||||
/**
|
||||
* 默认构造,使用UTF8编码,默认从ClassPath获取模板
|
||||
@@ -119,9 +125,11 @@ public class TemplateConfig implements Serializable {
|
||||
* 设置编码
|
||||
*
|
||||
* @param charset 编码
|
||||
* @return this
|
||||
*/
|
||||
public void setCharset(final Charset charset) {
|
||||
public TemplateConfig setCharset(final Charset charset) {
|
||||
this.charset = charset;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -137,9 +145,11 @@ public class TemplateConfig implements Serializable {
|
||||
* 设置模板路径,如果ClassPath或者WebRoot模式,则表示相对路径
|
||||
*
|
||||
* @param path 模板路径
|
||||
* @return this
|
||||
*/
|
||||
public void setPath(final String path) {
|
||||
public TemplateConfig setPath(final String path) {
|
||||
this.path = path;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -155,9 +165,11 @@ public class TemplateConfig implements Serializable {
|
||||
* 设置模板资源加载方式
|
||||
*
|
||||
* @param resourceMode 模板资源加载方式
|
||||
* @return this
|
||||
*/
|
||||
public void setResourceMode(final ResourceMode resourceMode) {
|
||||
public TemplateConfig setResourceMode(final ResourceMode resourceMode) {
|
||||
this.resourceMode = resourceMode;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -183,6 +195,28 @@ public class TemplateConfig implements Serializable {
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* 是否使用缓存
|
||||
*
|
||||
* @return 是否使用缓存
|
||||
* @since 5.8.38
|
||||
*/
|
||||
public boolean isUseCache() {
|
||||
return useCache;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置是否使用缓存
|
||||
*
|
||||
* @param useCache 是否使用缓存
|
||||
* @return this
|
||||
* @since 5.8.38
|
||||
*/
|
||||
public TemplateConfig setUseCache(boolean useCache) {
|
||||
this.useCache = useCache;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* 资源加载方式枚举
|
||||
*
|
||||
|
@@ -126,6 +126,7 @@ public class ThymeleafEngine implements TemplateEngine {
|
||||
classLoaderResolver.setCharacterEncoding(config.getCharsetStr());
|
||||
classLoaderResolver.setTemplateMode(TemplateMode.HTML);
|
||||
classLoaderResolver.setPrefix(StrUtil.addSuffixIfNot(config.getPath(), "/"));
|
||||
classLoaderResolver.setCacheable(config.isUseCache());
|
||||
resolver = classLoaderResolver;
|
||||
break;
|
||||
case FILE:
|
||||
@@ -133,6 +134,7 @@ public class ThymeleafEngine implements TemplateEngine {
|
||||
fileResolver.setCharacterEncoding(config.getCharsetStr());
|
||||
fileResolver.setTemplateMode(TemplateMode.HTML);
|
||||
fileResolver.setPrefix(StrUtil.addSuffixIfNot(config.getPath(), "/"));
|
||||
fileResolver.setCacheable(config.isUseCache());
|
||||
resolver = fileResolver;
|
||||
break;
|
||||
case WEB_ROOT:
|
||||
@@ -140,6 +142,7 @@ public class ThymeleafEngine implements TemplateEngine {
|
||||
webRootResolver.setCharacterEncoding(config.getCharsetStr());
|
||||
webRootResolver.setTemplateMode(TemplateMode.HTML);
|
||||
webRootResolver.setPrefix(StrUtil.addSuffixIfNot(FileUtil.getAbsolutePath(FileUtil.file(FileUtil.getWebRoot(), config.getPath())), "/"));
|
||||
webRootResolver.setCacheable(config.isUseCache());
|
||||
resolver = webRootResolver;
|
||||
break;
|
||||
case STRING:
|
||||
|
@@ -136,7 +136,10 @@ public class VelocityEngine implements TemplateEngine {
|
||||
final String charsetStr = config.getCharset().toString();
|
||||
ve.setProperty(Velocity.INPUT_ENCODING, charsetStr);
|
||||
// ve.setProperty(Velocity.OUTPUT_ENCODING, charsetStr);
|
||||
ve.setProperty(Velocity.FILE_RESOURCE_LOADER_CACHE, true); // 使用缓存
|
||||
if(config.isUseCache()){
|
||||
// issue#IC3JRY 可定制是否使用缓存
|
||||
ve.setProperty(Velocity.FILE_RESOURCE_LOADER_CACHE, true); // 使用缓存
|
||||
}
|
||||
|
||||
// loader
|
||||
switch (config.getResourceMode()) {
|
||||
|
Reference in New Issue
Block a user