輕量級java開源blog程序:npress

jopen 10年前發布 | 20K 次閱讀 npress 博客系統

npress 是六特爾原創的java開源blog程序,基于六特爾原創開源的NLF框架構建。

npress 可直接部署運行,使用NLF框架自帶的csv數據庫,程序啟動會自動創建數據庫至D:\\db\\npress目錄下(可在 nc.liat6.npress.DbSettingManagerNPress中修改),數據庫表文件為普通的csv文件格式,可使用文本編輯工具或 excel查看或直接修改。

本程序默認開啟html緩存模式,訪問過的頁面,會自動在classes\\cache\\文件夾下建立html緩存頁面,下次請求,自動返回html,減輕壓力,加快速度。

默認管理員賬號密碼為admin,可進入后臺修改。

NLF框架自動尋找接口的實現類:

我將用一個很簡單的例子來說明NLF框架的自動尋找接口實現這一特性。

我們定義一個接口,IWalk,有一個walk方法。

public interface IWalk{

public void walk();

}

然后,我們寫一個類來實現這個接口。

public class WalkImplV1 implements IWalk{

@Override

public void walk(){

System.out.println("走得很慢");

}

如果我是一個小白,我會這樣去調用它。

IWalk m = new WalkImplV1();

m.walk();

如果我是一個大白,我會用spring,和一大堆jar,和一大堆xml。

如果我是NLF框架的使用者,我會這樣做。

IWalk m = Factory.getCaller().newInstance(IWalk.class);

m.walk();

上面那一行代碼,即使用了NLF框架的一個特性,自動尋找IWalk接口的實現,它會在nlf.jar和您的應用代碼中(不會從外部引入的其他jar中尋找)找到WalkImplV1,最后輸出:走得很慢。

這時,你會有一個疑問,如果有多個IWalk的實現,NLF框架會找哪個呢?

NLF框架尋找實現類有個優先級,即用戶代碼優先級高,nlf.jar中代碼優先級低。如果用戶代碼中有實現類,則放棄從nlf.jar中尋找,你可以理解為nlf.jar是備胎。

NLF框架會把找到的多個實現類按短類名(排除包名)進行降序排列,取最前面的那個類作為實現類。如果我們增加一個名為WalkImplV2的實現類,則NLF框架會把WalkImplV2作為實現類。

項目主頁:http://www.baiduhome.net/lib/view/home/1402817636325

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!