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;
|
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.io.Serializable;
|
||||||
import java.nio.charset.Charset;
|
import java.nio.charset.Charset;
|
||||||
import java.util.Objects;
|
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
|
* @since 4.1.0
|
||||||
*/
|
*/
|
||||||
public class TemplateConfig implements Serializable {
|
public class TemplateConfig implements Serializable {
|
||||||
|
@Serial
|
||||||
private static final long serialVersionUID = 2933113779920339523L;
|
private static final long serialVersionUID = 2933113779920339523L;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -53,6 +55,10 @@ public class TemplateConfig implements Serializable {
|
|||||||
* 自定义引擎,当多个jar包引入时,可以自定使用的默认引擎
|
* 自定义引擎,当多个jar包引入时,可以自定使用的默认引擎
|
||||||
*/
|
*/
|
||||||
private Class<? extends TemplateEngine> customEngine;
|
private Class<? extends TemplateEngine> customEngine;
|
||||||
|
/**
|
||||||
|
* 是否使用缓存
|
||||||
|
*/
|
||||||
|
private boolean useCache = true;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 默认构造,使用UTF8编码,默认从ClassPath获取模板
|
* 默认构造,使用UTF8编码,默认从ClassPath获取模板
|
||||||
@@ -119,9 +125,11 @@ public class TemplateConfig implements Serializable {
|
|||||||
* 设置编码
|
* 设置编码
|
||||||
*
|
*
|
||||||
* @param charset 编码
|
* @param charset 编码
|
||||||
|
* @return this
|
||||||
*/
|
*/
|
||||||
public void setCharset(final Charset charset) {
|
public TemplateConfig setCharset(final Charset charset) {
|
||||||
this.charset = charset;
|
this.charset = charset;
|
||||||
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -137,9 +145,11 @@ public class TemplateConfig implements Serializable {
|
|||||||
* 设置模板路径,如果ClassPath或者WebRoot模式,则表示相对路径
|
* 设置模板路径,如果ClassPath或者WebRoot模式,则表示相对路径
|
||||||
*
|
*
|
||||||
* @param path 模板路径
|
* @param path 模板路径
|
||||||
|
* @return this
|
||||||
*/
|
*/
|
||||||
public void setPath(final String path) {
|
public TemplateConfig setPath(final String path) {
|
||||||
this.path = path;
|
this.path = path;
|
||||||
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -155,9 +165,11 @@ public class TemplateConfig implements Serializable {
|
|||||||
* 设置模板资源加载方式
|
* 设置模板资源加载方式
|
||||||
*
|
*
|
||||||
* @param resourceMode 模板资源加载方式
|
* @param resourceMode 模板资源加载方式
|
||||||
|
* @return this
|
||||||
*/
|
*/
|
||||||
public void setResourceMode(final ResourceMode resourceMode) {
|
public TemplateConfig setResourceMode(final ResourceMode resourceMode) {
|
||||||
this.resourceMode = resourceMode;
|
this.resourceMode = resourceMode;
|
||||||
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -183,6 +195,28 @@ public class TemplateConfig implements Serializable {
|
|||||||
return this;
|
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.setCharacterEncoding(config.getCharsetStr());
|
||||||
classLoaderResolver.setTemplateMode(TemplateMode.HTML);
|
classLoaderResolver.setTemplateMode(TemplateMode.HTML);
|
||||||
classLoaderResolver.setPrefix(StrUtil.addSuffixIfNot(config.getPath(), "/"));
|
classLoaderResolver.setPrefix(StrUtil.addSuffixIfNot(config.getPath(), "/"));
|
||||||
|
classLoaderResolver.setCacheable(config.isUseCache());
|
||||||
resolver = classLoaderResolver;
|
resolver = classLoaderResolver;
|
||||||
break;
|
break;
|
||||||
case FILE:
|
case FILE:
|
||||||
@@ -133,6 +134,7 @@ public class ThymeleafEngine implements TemplateEngine {
|
|||||||
fileResolver.setCharacterEncoding(config.getCharsetStr());
|
fileResolver.setCharacterEncoding(config.getCharsetStr());
|
||||||
fileResolver.setTemplateMode(TemplateMode.HTML);
|
fileResolver.setTemplateMode(TemplateMode.HTML);
|
||||||
fileResolver.setPrefix(StrUtil.addSuffixIfNot(config.getPath(), "/"));
|
fileResolver.setPrefix(StrUtil.addSuffixIfNot(config.getPath(), "/"));
|
||||||
|
fileResolver.setCacheable(config.isUseCache());
|
||||||
resolver = fileResolver;
|
resolver = fileResolver;
|
||||||
break;
|
break;
|
||||||
case WEB_ROOT:
|
case WEB_ROOT:
|
||||||
@@ -140,6 +142,7 @@ public class ThymeleafEngine implements TemplateEngine {
|
|||||||
webRootResolver.setCharacterEncoding(config.getCharsetStr());
|
webRootResolver.setCharacterEncoding(config.getCharsetStr());
|
||||||
webRootResolver.setTemplateMode(TemplateMode.HTML);
|
webRootResolver.setTemplateMode(TemplateMode.HTML);
|
||||||
webRootResolver.setPrefix(StrUtil.addSuffixIfNot(FileUtil.getAbsolutePath(FileUtil.file(FileUtil.getWebRoot(), config.getPath())), "/"));
|
webRootResolver.setPrefix(StrUtil.addSuffixIfNot(FileUtil.getAbsolutePath(FileUtil.file(FileUtil.getWebRoot(), config.getPath())), "/"));
|
||||||
|
webRootResolver.setCacheable(config.isUseCache());
|
||||||
resolver = webRootResolver;
|
resolver = webRootResolver;
|
||||||
break;
|
break;
|
||||||
case STRING:
|
case STRING:
|
||||||
|
@@ -136,7 +136,10 @@ public class VelocityEngine implements TemplateEngine {
|
|||||||
final String charsetStr = config.getCharset().toString();
|
final String charsetStr = config.getCharset().toString();
|
||||||
ve.setProperty(Velocity.INPUT_ENCODING, charsetStr);
|
ve.setProperty(Velocity.INPUT_ENCODING, charsetStr);
|
||||||
// ve.setProperty(Velocity.OUTPUT_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
|
// loader
|
||||||
switch (config.getResourceMode()) {
|
switch (config.getResourceMode()) {
|
||||||
|
Reference in New Issue
Block a user