nvelocity的單例用法

2021-08-27 14:42:59 字數 1020 閱讀 4195

目前nvelocity的典型用法是

//建立乙個模板引擎

velocityengine vltengine=new velocityengine();

//檔案型模板,還可以是

assembly

,則使用資源檔案

vltengine.setproperty(runtimeconstants.resource_loader,」file」);

//模板存放目錄

vltengine.init();

這對於呼叫次數很少,或者只在程式初始化呼叫的情形是適合的,但是對於**這種要多次呼叫模板的系統顯得就不太合適。可以看一下velocityengine的init方法實現:

/** this is the primary initialization method in the velocity

* runtime. the systems that are setup/initialized here are

* as follows:**

*/public virtual void init() }}

這其中包含了大量的對配置檔案的讀取,解析工作,工作日誌記錄等操作。其中還用到了反射等比較耗費效能的操作。

通過下面測試**

stopwatch stw = new stopwatch();

stw.start();

for (int i = 0; i < 100; i++)

stw.stop();

console.writeline(stw.elapsedmilliseconds);

可以發現,執行時間為7833毫秒,這是不能接受的。

其實nvelocity提供了單例的方法供我們呼叫,可參考官網的介紹(

這樣,將nvelocity的初始化放到靜態建構函式中執行,只執行一次,可以保證效能

NVelocity的基本用法

nvelocity常用語法指令 預設情況下,nvelocity解析是不分大小寫的,當然可以通過設定runtime.strict.math true,採用嚴格解析模式。嚴格區分大小寫有時候還是挺有用途的。如果在模板檔案中有這樣的包含檔案,發布改模板的時候,就會提示 include後面沒有括弧 的錯誤。...

單例模式及getInstance 的用法

一般在單例模式下使用.getinstance 建立物件 但並不是所有有私有構造方法,對外通過getinstance方法提供 例項的情況就是單例模式。注 單例模式 乙個類有且只有乙個例項。1,乙個私有的構造器 2,乙個私有的該類型別的變數 3,必須有乙個共有的返回型別為該類型別的方法,用來返回這個唯一...

單例模式及getInstance 的用法

本文 一般在單例模式下使用.getinstance 建立物件 但並不是所有有私有構造方法,對外通過getinstance方法提供 例項的情況就是單例模式。注 單例模式 乙個類有且只有乙個例項。1,乙個私有的構造器 2,乙個私有的該類型別的變數 3,必須有乙個共有的返回型別為該類型別的方法,用來返回這...