velocity原始碼分析 初始化之指令初始化

2021-08-26 05:58:48 字數 837 閱讀 7905

之前在「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原始碼分析 velocity初始化

velocity初始化類結構圖 描述 1.runtimeconstants定義常量,主要是velociyt初始化的配置項的key 2.四個方法實現該介面主要是共用公共定義的常量,發現很多開源框架喜歡繼承公共常量定義的介面來公用變數。3.runtimeinstance類是velocity初始化的具體實...

velocity原始碼分析 velocity初始化

velocity初始化類結構圖 描述 1.runtimeconstants定義常量,主要是velociyt初始化的配置項的key 2.四個方法實現該介面主要是共用公共定義的常量,發現很多開源框架喜歡繼承公共常量定義的介面來公用變數。3.runtimeinstance類是velocity初始化的具體實...

Spring MVC原始碼分析 初始化過程

1.概述 handleradapter的繼承體系 同樣的視 析器viewresolver針對不同的輸出格式也有一系列的實現類,具體可自己看。2.實現分析 以我自己的乙個web專案中spring mvc的配置為例 2.1 spring mvc初始化流程 dispatcherservlet的繼承體系如 ...