将.xsl文件编译为.class文件

时间:2010-06-16 11:01:50

标签: java performance xslt compilation

我目前正在开发一个Java Web项目(Spring),它涉及大量使用xsl转换。样式表很少更改,因此它们当前是缓存的。我正在考虑通过将xsl-s编译成类文件来提高性能,这样就不必在每个请求中解释它们。

我是Java的新手,所以我真的不太了解生态系统。这样做的最佳方法是什么(图书馆,方法等)?

谢谢,
亚历

3 个答案:

答案 0 :(得分:4)

您可能不必编译到.class来实现目标,您可以在每次运行时编译一次xsl并重新使用已编译的实例进行所有转换。

为此,您需要创建一个Templates对象,例如:

TransformerFactory factory = TransformerFactory.newInstance();
factory.setErrorListener(new ErrorListener( ... ));
xslTemplate = factory.newTemplates(new StreamSource( ... ));

并使用模板让变换器完成工作:

Transformer transformer = xslTemplate.newTransformer();

根据您使用的XSL库,您的里程可能会有所不同。

答案 1 :(得分:2)

您需要一个模板和一个样式表缓存:

http://onjava.com/pub/a/onjava/excerpt/java_xslt_ch5/index.html?page=9

请注意线程安全,因为变形金刚不是线程安全的。最好在ThreadLocal中进行转换以进行隔离。

答案 2 :(得分:1)

考虑使用Gregor / XSLT编译器

相关问题