专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > 行业应用

Velocity在Roller中的使用

发布时间:2010-06-06 18:56:58 文章来源:www.iduyao.cn 采编人员:星星草
Velocity在Roller中的应用

Velocityjava世界中出现比较早,也比较成熟的、性能比较好的、应用也比较广泛的模板框架。

 

所谓模板,就是定义一套不变的模型,并用其生成一些动态的东西。最常见的是应用场景是动态网页,我们知道一些网页大部分内容是不变的,只有少数内容需要改变,比如当前浏览网页的用户名等。除了这种场景,在自动生成代码方面,模板技术的应用也是常见的。

 

那么,在Rollervelocity是被用来干什么呢?简单地说,其实也是用来生成网页的。不过,除了生成网页,还要把生成的结果缓存起来。

 

本文中主要讨论Roller如何应用velocity进行设计及其启示。以下是Roller关于velocity的类图:

Roller定义了两个类:RendererRendererManager,在Roller中所有跟velocity相关的操作都从这两个类开始!

 

可能你有点疑惑,模板有很多,并且放置的地方也不同。这两个类怎么知道我要的是那个模板?

 

RendererManager的静态方法 getRenderergetRenderer(Template template)中,参数带有一些关于模板的信息,比如名称、ID等。其实,RendererManagerVelocityRendererFactory代为其干活。VelocityRendererFactory简单new 一个VelocityRenderer对象并将其返回给应用。

 

VelocityRenderer对象被实例化的时候将得到一个真正的Velocity  模板对象,真正干活的也是Velocity,不是RollerVelocityRenderer

 

VelocityRenderer是如何得到Velocity的模板对象的呢?答案是通过RollerVelocity

RollerVelocity会被实例化一个Velocity引擎,并且通过Velocity的专有配置文件Velocity.properties文件确定有那些渠道可以取到模板!见类图中的ResourceLoader实现类。

 

启示:

1、我们在工作中会用到很多第三方软件(如,Velocitypoijxl等),我们是否也为用到这些第三方软件的同事屏蔽如何使用第三方软件(即会用RendererRendererManager即可)?这样其他人就不需要花时间去学习如何使用第三方软件了,既提高效率又利于维护。

 

2、如果有更好的模板技术出现,你要让它代替Velocity,工作量如何?怎么做?

 

3、当前我用Roller进行二次开发,有一个客户关系模块需要应用模板技术进行个性化的发送邮件、短信。我实现起来非常方便,分别实现加载邮件、短信模板的ResourceLoader就可以了,其他地方不需要改动。难道设计Roller的人预见我会有这个需求了吗?

 

 

 

友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

  • 《松本行弘的程序全世界》之面向对象

    《松本行弘的程序世界》之面向对象 最近读《SICP》把脑细胞搞死大半,还没看完2章,而且看得也是一知半解,实在是受不了了,...

  • GroovyHelp 3.2.7 GA公布

    GroovyHelp 3.2.7 GA发布 GroovyHelp简介   GroovyHelp是一款Javadoc及Groovydoc搜索查阅软件,它能够帮助Java开发人员以...

  • Velocity在Roller中的使用

    Velocity在Roller中的应用 Velocity是java世界中出现比较早,也比较成熟的、性能比较好的、应用也比较广泛的模板框架。   所...

  • Rpc远程调用框架的设计与兑现(2)

    Rpc远程调用框架的设计与实现(2) 接上: 3   基于Json的前后端数据交互 3.1   轻量级的数据交换形式 3.1.1    什么是Jso...

  • excel 单元格的锁定 以及 JXL的兑现方式

    excel 单元格的锁定 以及 JXL的实现方式 在使用excel表格时,有些列是不希望用户可以修改的,诸如审计日志里面确定的部分,而审计...

  • 仓秤跟散料秤:java连接opc Server

    仓秤和散料秤:java连接opc Server 这三篇都是之前写好的,一直没发。 这次一起发出来吧。   java连接硬件很痛苦,特别是对我这...

  • Rpc远程调用框架的设计与兑现(1)

    Rpc远程调用框架的设计与实现(1) Rpc远程调用框架的设计与实现 1     Rpc远程调用框架设计概述 1.1   研究背景 1.1.1...

  • 集合中的线程安全有关问题

    集合中的线程安全问题 一、why? Java中常用的集合框架推荐使用的三个实现:HashSet\ArrayList\HashMap都是线程不安全的.如...

  • Java定时任务的兑现

    Java定时任务的实现 本例依据Java自身提供的接口实现,通过监听器(Listener)和定时器(Timer)定时执行某个任务(Task)。 MyListener: ...

  • java中log日记的使用

    java中log日志的使用 一、介绍  Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控...

热门推荐: