之前在「velocity原始碼分析:velocity初始化
」文章中粗略地介紹了velocity整體的初始化過程,包括各個系統的初始化,本文主要介紹指令相關初始化**,由於指令是使用velocity語言必須掌握的內容,同時也是內部在建立node樹時特別區分的節點,是velocity**中比較核心的概念。
原則,現上圖:
說明:
velocity指令初始化**比較簡單,在初始化好resourcemanger後,呼叫initdirectives()方法初始化指令,但是由於指令系統和node解析直接相關,本文主要介紹指令系統的**結構,以方便**後續對node節點樹構建的方式作鋪墊;同時也讓velocity的使用者而不是開發者理解各個指令的實現和使用。具體邏輯:
1.讀取velocity.properties配置檔案,並載入所有的指令配置
2.利用反射載入初始化所有的指令
3.將指令放到runtimedirectives中,同時把所有初始化的指令放到runtimedirectiveshared中,這樣主要是以後呼叫會使用到shared
概述: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的繼承體系如 ...