2016-11-16 2 views
1

xsl (모든 요청에서 동일)을 캐싱하기 위해 다음 코드를 사용하여 매번 디스크에서 파일을 읽을 수 없습니다.Java 종속 xsl 파일의 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(); 

답변

1

예, Templates 객체에는 전체 스타일 시트 (즉, 스타일 시트의 모든 모듈)의 일종의 내부/컴파일 된 메모리 표시가 포함됩니다. 정확히 무슨 일이 발생하는지는 구현에 달려 있지만 (JAXP는 인터페이스이며 JAXP 구현은 다른 방식으로 구현할 수 있습니다.)