velocity源码分析:初始化之指令初始化
2011-09-22 15:05
323 查看
之前在“velocity源码分析:velocity初始化”文章中粗略地介绍了velocity整体的初始化过程,包括各个系统的初始化,本文主要介绍指令相关初始化代码,由于指令是使用velocity语言必须掌握的内容,同时也是内部在建立node树时特别区分的节点,是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
原则,现上图:
说明:
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
相关文章推荐
- velocity源码分析:初始化之配置文件
- velocity源码分析:velocity初始化
- velocity源码分析:初始化之日志系统
- velocity源码分析:初始化之ResourceManager
- 【Spring源码分析】非懒加载的单例Bean初始化前后的一些操作
- Lua源码分析 -- 虚拟机以及指令解释
- 源码分析-Mybatis初始化过程
- GCC源码分析(五)——指令生成
- Lighttpd1.4.20源码分析之插件系统(2)---插件的加载和初始化
- Nginx源码分析-事件驱动的初始化
- tomcat6源码分析二(初始化和启动流程)
- Spring之WebContext不使用web.xml启动 初始化重要的类源码分析(Servlet3.0以上的)
- libvirt源码分析——libvirtd的初始化
- DDR2初始化源码分析_2
- Spring Security3源码分析(1)-FilterChainProxy初始化
- SQLmap源码分析之框架初始化(一)
- Tomcat8源码分析系列-启动分析(二) Catalina初始化
- Spring Core Container 源码分析三:Spring Beans 初始化流程分析
- DispatcherServlet 源码分析(三) - handlerMapping初始化
- Android Wi-Fi源码分析之wpa_supplicant初始化(四):wpa_supplicant_init_iface函数分析