设为首页  
联系我们  
加入收藏  
网页制作 冲浪宝典 图形图像 操作系统 软件教学 编程开发 认证考试 安全技术 站长专区 文学驿站 娱乐天地 游戏天地 办公软件
文章搜索
您的位置: 首页 >> 文章首页 >> 编程开发 >> Java >> 在JAXP中透明的缓存XSL转换器
精品推荐
Java点击TOP10
·java笔试题
·《Thinking in Java》读书笔记
·JSP的mysql_jdbc驱动程序
·异常java.sql.SQLException: Io exception:The Network Adapter could not establish connection
·Java Coder 常用软件下载地址
·org.apache.commons.dbcp.SQLNestedException解决办法
·Java图形界面开发:SWT全接触
·如何使用Java POI生成Excel表文件 !
·功能强大的在线网页编辑器
·一些非常不错的Struts 例子下载
编程开发点击TOP10
·ASP.NET 程序中常用的三十三种代码
·利用ASP.NET构建网上考试系统
·C#版的网站新闻发布系统
·(转)23种设计模式汇集
·设计ASP.NET新闻管理系统
·深山红叶袖珍PE工具箱V16正式版
·我的.NET书架 (入门篇)
·java笔试题
·C++经典电子书下载
·.NET:是什么?将走向哪里?
精选专题

在JAXP中透明的缓存XSL转换器

作者: 来源:网络文章 时间:2005-12-16 22:37:09

在JAXP中透明的缓存XSL转换器(2) TransformerFactory transFact = TransformerFactory.newInstance();
Templates cachedXSLT = transFact.newTemplates(xsltSource);
Transformer trans = cachedXSLT.newTransformer();

 

在这个示例中,xsltFile的transformation首先被载入cachedXSLT Templates对象。然后这个对象被用于创建新的transformer对象trans。这样使用的优势在于当我们需要另一个transformer对象时,解析和编译过程可能会被跳过。

 

Transformer anotherTrans = cachedXSLT.newTransformer();

 

尽管这个技巧肯定会提高性能(特别是当重复使用相同的样式表时,比如在Web应用中),坦白的讲,它对于开发者来说并不方便。原因是除基于Templatestransformer实例外,你还必须注意样式表的最后更新时间,重新载入过期(outdated)transformations,提供安全的并且在多线程访问样式表时仍具有高效率的缓存,还很多其他的细节。甚至将需要的功能封装进一个单独的transformer缓存实现也无法帮助使用第三方模块的开发者。一个很好的例子就是JSTL x:transform标记:当前在org.apache.taglibs.standard.tag.common.XML.TransformSupport和org.apache.taglibs.standard.tag.el.XML.TransformTag类中直接用TransformerFactory的newTransformer(…)方法。很明显,x:transform无法借助外部的缓存实现来提高性能

 

不过还是有一个简单的、不错的方法来解决这个问题的。JAXP始终允许我们替代其Transformer Factory,那我们为什么不写一个具有caching能力的factory来解决这个问题呢?

 

这个主意并不难实现。我们可以扩展任何一个合适的TransformerFactory(我使用Michale KeySaxon 7.3)并且重载父类的newTransformer(…)方法使从基于文件的StreamSources中载入的transmations可以被缓存并从缓存中读取。当然,前提是transmations在载入后没有被修改。下面是一个新版本的newTransformer(…)方法:

 

public Transformer newTransformer(final Source source)

共13页 9 7 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [138 :>

在JAXP中透明的缓存XSL转换器 相关文章:
在JAXP中透明的缓存XSL转换器 相关软件:
特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
转载请注明来源:http://www.xgdown.com