E
Date :
轉載請注明出處
(copyright by @ zhangyi)
如果你的Web系統使用了Struts系統
那麼在那裡實現框架的初始化呢?
Servlet在啟動的時候就會執行一個叫init()的方法
那麼
Struts的初始化到底初始化了那些東西呢?
要知道這個問題
[
[
[
[
[
這幾個部分在init()的裡面是按照順序初始化的
在初始化的過程中
其中內部資源文件和用戶的擴展的初始化是獨立完成的
所以如果要初始化上面的三個模塊就先要初始化配置模塊
現在你可能要問
配置模塊的初始化也不是直接 new ModuleConfig()就可以了
所以
配置模塊的工廠是ModuleConfigFactory
在這還有一個挺特別的地方
protected static String factoryClass =
其實這也就是struts的配置工廠可以自己實現的原因
補充說明一點
前面提到的擴展初始化就是指的此擴展
現在
也就是我們得到一個ModuleConfig的實例了
ModuleConfig config = factoryObject
這個方法就可以實現了
不過
我們上面說了
onfig
的對象
public ModuleConfig createModuleConfig(String prefix) {
return new ModuleConfigImpl(prefix);
}
他實例化了一個ModuleConfigImpl
到此也許你也明白一些其中的邏輯
你想
如果你自己定義了工廠的實現的話
這一部分
好了
下面
initModuleConfigFactory();
// Initialize modules as needed
ModuleConfig moduleConfig = initModuleConfig(
initModuleMessageResources(moduleConfig);
initModuleDataSources(moduleConfig);
initModulePlugIns(moduleConfig);
至於詳細的如何配置和實現
這些配置完成之後
主要是多個struts
都要去解析
代碼如下
Enumeration names = getServletConfig()
while (names
String name = (String) names
if (!name
continue;
}
String prefix = name
moduleConfig = initModuleConfig
(prefix
initModuleMessageResources(moduleConfig);
initModuleDataSources(moduleConfig);
initModulePlugIns(moduleConfig);
moduleConfig
}
取得一個配置文件後
從宏觀上來說
From:http://tw.wingwit.com/Article/program/Java/ky/201311/27862.html