- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Velocity初始化过程解析
Velocity初始化过程解析
Velocity是一个表示层的模板框架,作为jsp的替代者,有着很多优势。小巧方便,不必使用el或者其他表示层技术来展示页面,感觉是一个很新颖的技术。
Velocity作为MVC框架中的V存在,和普通jsp页面有着不同,它是一种template引擎,利用先编辑完的格式来作为大纲,把一些需要变化的地方作为参数传入,显示时将模板和参数合并,达到最终输出的样子。本文使用目前必威体育精装版的velocity1.6.2.jar包进行解析。
最根本的velocity就是由template,engine,context组成。
1、首先创建一个template(如果是用在web上就是一个html文件),将需要参数化或实例化的地方用跟context有关的符号标记出来,标记时使用velocity template language。而template应该可以是任意的文本。
2、给context设定一些值,这些值用来替换在template中被标记的地方。
3、利用engine将template中需要替换的地方用context中的值替换掉,也就是所谓的merge,从而得到该模板的实例。
简单的用java代码来输出就是:
VelocityEngine velocity = new VelocityEngine();
VelocityContext context = new VelocityContext();
context.put(name, czy);
Template template = velocity.getTemplate(/src/main/resources/test.vm);
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(System.out));
template.merge(context, writer);
writer.flush();
writer.close();
至于我们为什么使用VelocityEngine 而不是使用Velocity类,或者说两者有什么区别,请看《VelocityEngine 和Velocity类解析》
我们假设使用普通的velocityEngine来作为引擎,来进入初始化的过程。
Velocity的初始化有多种方式:
1、init()
2、init(Properties p)
3、init(String propertiesName)
第一种init()方式是最简单的方式,当我们的程序没有配置类似velocity.properties这样的文件的时候,就会使用默认的配置文件来初始化,默认的配置文件的位置在
org/apache/velocity/runtime/defaults/velocity.properties
而将Velocity应用在WEB的时候,默认的配置文件使用的是
org/apache/velocity/tools/view/servlet/velocity.properties
在初始化前,velocity会把配置文件的属性和值读取后保存在内存中,初始化时,velocity将会初始化以下几个方面:
1、Logging System 日志系统
2、ResourceManager 资源加载器
3、EventHandler 事件句柄
4、Parser Pool 解析池
5、Global Cache 全局缓存
6、Static Content Include System
7、Velocimacro System 宏
Logging System
顾名思义,是进行日志的初始化工作,Veloicty会使用LogManager来默认创建一个LogChute的实例。Velocity早些时候是使用LogSystem来作为日志的接口,而现在则使用LogChute。第一个最初最初的默认实例叫做HoldingLogChute,其实里面就是一个Vector来保存信息,用来作为初始化日志系统的日志实例,呵呵,很拗口。
在创建了第一个系统内置的日志实例后,才会开始真正的创建日志系统,velocity会根据配置文件里的信息,查找一个名叫runtime.log.logsystem的属性,一旦配置文件中有配置这个属性,则会开始去创建日志系统。当velocity没有配置runtime.log.logsystem这个属性的时候,则会继续寻找runtime.log.logsystem.class这个属性,默认的velocity.properties配置文件中,这个属性的值按顺序依次为
1、AvalonLogChute
2、Log4JLogChute
3、Comm
文档评论(0)