velocity源代码分析

本文介绍Velocity模板引擎的工作原理及组成部分,包括template、context和engine的概念。同时深入探讨了Velocity的内部组件如logging、Resourceloader及VelocityEngine等的作用,并解析了其运行流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Velocity就是一个template引擎,或是代码生成器。
由template,engine,context组成。
1. 首先创建一个template(如果是用在web上就是一个html文件),将需要参数化或实例化的地方用跟context有关的符号标记出来,标记时使用velocity template language。而template应该可以是任意的文本。
2. 给context设定一些值,这些值用来替换在template中被标记的地方。
3. 利用engine将template中需要替换的地方用context中的值替换掉,也就是所谓的merge,从而得到该模板的实例。
除此之外,还有些组件:
logging:用log4j作为其日志系统。
Resource loader:控制网页生成中使用的模板。

VelocityEngine--->RuntimeInstance
                   initializeResourceManager()  
                                ----------->ResourceManagerImpl
                                            initialize()
                                            assembleResourceLoaderInitializers()
                   getTemplate()
                               ----------->getResource()------->loadResource()
 									     ----->Resource:Template
										      resource.process()
										      			------>ResourceLoader
                                                                                                                          getResourceStream()
										      			------>RuntimeInstance
                                                                                                                          parse()



parse阶段

RuntimeInstance
       prase()-------->ParserPool
			get()---------->Parser
                                        parse()

ResourceManager
Velocity.setProperty("resource.manager.class", "ResourceManager");

ResourceLoader
默认是FileResourceLoader

ResourceCache
默认是ResourceCacheImpl

RuntimeConstants总控配置

resourceType

velocity有两种资源类型 RESOURCE_TEMPLATE, RESOURCE_CONTENT,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值