java 中的 XSL 缓存 - 依赖的 xsl 文件
XSL caching in java - dependent xsl files
我正在使用以下代码来缓存 xsl(所有请求都相同),这样就不会每次都从磁盘读取文件。
我的问题是,如果 xsl 引用 100 个其他 xsl 文件 (<xsl:include href="file1"/>
),它们也会被加载到缓存中吗?它们仍会从磁盘中读取吗?
如果没有,我们如何让所有依赖的 xsls 都被读入内存并缓存?
private static Templates cachedXslt = null;
// Transformer
if(cachedXslt == null)
{
Source xsltSrc = new StreamSource(xslPath);
TransformerFactory transformerFactory = TransformerFactory.newInstance();
cachedXslt = transformerFactory.newTemplates(xsltSrc);
}
Transformer transformer = cachedXslt.newTransformer();
是的,Templates 对象将包含某种 internal/compiled 整个样式表(即样式表的所有模块)的内存表示形式。尽管具体发生什么当然取决于实现(JAXP 是一个接口,JAXP 实现可以用不同的方式实现它。)
我正在使用以下代码来缓存 xsl(所有请求都相同),这样就不会每次都从磁盘读取文件。
我的问题是,如果 xsl 引用 100 个其他 xsl 文件 (<xsl:include href="file1"/>
),它们也会被加载到缓存中吗?它们仍会从磁盘中读取吗?
如果没有,我们如何让所有依赖的 xsls 都被读入内存并缓存?
private static Templates cachedXslt = null;
// Transformer
if(cachedXslt == null)
{
Source xsltSrc = new StreamSource(xslPath);
TransformerFactory transformerFactory = TransformerFactory.newInstance();
cachedXslt = transformerFactory.newTemplates(xsltSrc);
}
Transformer transformer = cachedXslt.newTransformer();
是的,Templates 对象将包含某种 internal/compiled 整个样式表(即样式表的所有模块)的内存表示形式。尽管具体发生什么当然取决于实现(JAXP 是一个接口,JAXP 实现可以用不同的方式实现它。)