2010-06-16 22 views
0

你們是否有自己的項目創業小框架?我的意思是,每次一個需要在開始做同樣的事情:首選的應用程序初始化方式


上下文初始化 - 參數經過處理後的理想。有時候沒有交互式用戶輸入,有時候會有輸入閱讀器有時我們需要加載屬性,有時候不需要。然後,我們需要讓課程脫離上下文並運行它的方法。編程....編程,直到編寫shell腳本將所有內容放在classpath上。


確實,它根據實際需要而有所不同。但在我看來,我總是幾乎一樣,一次又一次地從頭開始。有時候我意識到我正在推遲我的工作,只是因爲我不想做這些煩人的創業公司。


這將是巨大的,如果有某種通用的主類做反射到指定的bean,上下文初始化,參數解析,交互式用戶輸入閱讀,並有程序員做重要的事情......所有的設置可能通過彈簧配置完成。我想我必須自己做。

我會很感激你的想法

編輯:我要做的:有些類型的啓動類的,這將讓用戶和開發者的論點(路徑上下文文件,豆春季與用戶參數和豆設置實例化,供應春季環境並運行)。 Lighweight API的參數解析,或許真的對交互式用戶輸入,可能是艱難

回答

2

我使用所有的我的命令行實用程序啓動的抽象基類。初始化過程有一些基本的啓動lifecyel方法定義。我不使用命令行參數

具體的子類看起來像:

public class MyApp extends MyAppBase { 
public String[] getSpringConfigResource() { 
    return new String[] { "someapp/appctx.xml", "util/appctx2.xml" }; 
} 

protected void postApplicationLoad() { 
    SomeServer server = springCtx.getBean("server"); 
    server.start(); 
} 

public static void main(String args[]) { 
    initLogging("com/me/myAppLog4j.xml", MyApp.class);  
    MyApp myApp = new MyApp(); 
    myApp.loadConsoleApplication(); 
} 
} 

對於沒有某種原因,我的揮杆的基於非交互式應用程序使用命令行參數(args[]),因爲這些往往是安裝程序和屬性文件的服務。

+0

那是什麼,我meant..this模板方法模式一個非常好的設計。感謝分享 – lisak 2010-06-17 00:08:22