velocity源码分析:初始化之指令初始化

之前在“velocity源码分析:velocity初始化”文章中粗略地介绍了velocity整体的初始化过程,包括各个系统的初始化,本文主要介绍指令相关初始化代码,由于指令是使用velocity语言必须掌握的内容,同时也是内部在建立node树时特别区分的节点,是velocity代码中比较核心的概念。

原则,现上图:

velocity源码分析:初始化之指令初始化

说明:

velocity指令初始化代码比较简单,在初始化好resourceManger后,调用initDirectives()方法初始化指令,

具体逻辑:

1.读取velocity.properties配置文件,并加载所有的指令配置

2.利用反射加载初始化所有的指令

3.将指令放到runtimeDirectives中,同时把所有初始化的指令放到runtimeDirectiveShared中,这样主要是以后调用会使用到shared

但是由于指令系统和node解析直接相关,本文主要介绍指令系统的代码结构,以方便代码后续对node节点树构建的方式作铺垫;同时也让velocity的使用者而不是开发者理解各个指令的实现和使用。

概述:

velocity中有两个重要的配置文件,一个是velocity.properties,主要用来定义velocity初始化时需要用到的配置信息;另一个就是本文介绍的directive.properties,该文件中定义了velocity中的一些指令系统,如判断指令,循环指令。

指令:

1.foreach

2.include

3.parse

4.macro

5.evaluate

6.break

7.define

8.stop

相关推荐