Компиляция файлов .xsl в файлы .class - PullRequest
2 голосов
/ 16 июня 2010

В настоящее время я работаю над веб-проектом на Java (Spring), который предполагает интенсивное использование преобразований xsl. Таблицы стилей редко меняются, поэтому в настоящее время они кэшируются. Я думал об улучшении производительности путем компиляции xsl-s в файлы классов, чтобы их не нужно было интерпретировать при каждом запросе.

Я новичок в Java, поэтому не очень хорошо знаю экосистему. Как лучше всего это сделать (библиотеки, методы и т. Д.)?

Спасибо
Alex

Ответы [ 3 ]

4 голосов
/ 16 июня 2010

Вам может не потребоваться компилировать в .class для достижения вашей цели, вы можете скомпилировать xsl один раз за цикл и повторно использовать скомпилированный экземпляр для всех преобразований.

Для этого вы создаете1004 * объект, например:

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

и использование шаблона для получения преобразователя для выполнения работы:

Transformer transformer = xslTemplate.newTransformer();

В зависимости от используемой вами библиотеки XSL ваш пробег может варьироваться.

2 голосов
/ 16 июня 2010

Вам понадобится шаблон и кеш таблиц стилей:

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

Будьте осторожны с безопасностью потоков, потому что трансформаторы не безопасны. Лучше всего делать ваши преобразования в ThreadLocal для изоляции.

1 голос
/ 20 февраля 2012

Рассмотрите возможность использования компилятора Gregor / XSLT

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...