国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Struts源碼的學習之配置模塊初始化的實現

2019-11-18 15:32:50
字體:
來源:轉載
供稿:網友

  Author    :    zhyiwww
E-Mail    :    zhyiwww@163.com
Date    :    2007-1-10
轉載請注明出處 www.javaResearch.org
(copyright by @ zhangyi)

Struts中的MessageResource、PlugIn、數據源等,都是通過ModuleConfig來實現的。
那么在ActionServlet初始化上面的那些模塊之前,就先要初始化ModuleConfig,然后由ModuleConfig來負責其初始化。
在ActionServlet初始化ModuleConfig的時候,先要初始化配置工廠,然后由配置工廠:
     initModuleConfigFactory();
之后再實例化一個ModuleConfig的對象。
ModuleConfig moduleConfig = initModuleConfig("", config);

那么這個工廠到底初始化了什么?
現看源代碼:
    PRotected void initModuleConfigFactory(){
        String configFactory = getServletConfig().getInitParameter("configFactory");
        if (configFactory != null) {
            ModuleConfigFactory.setFactoryClass(configFactory);
        }
}
很明顯,現從配置參數取得其配置,假如用戶沒有作配置,那么就使用默認配置,假如用戶作了配置,那么就使用用戶的配置。
假如用戶作了配置的話,那么就執行設置成用戶的工廠。如何設置的呢?
    public static void setFactoryClass(String factoryClass) {
        ModuleConfigFactory.factoryClass = factoryClass;
        ModuleConfigFactory.clazz = null;
    }
在此我們可以看到,直接給ModuleConfigFactory.factoryClass賦值,為什么可以這樣做呢?因為此變量是:
    protected static String factoryClass =
        "org.apache.struts.config.impl.DefaultModuleConfigFactory";
由此定義決定了可以使用此賦值方法。因為此變量是一個靜態的變量。

正是因為此變量是一個靜態的變量,所以在下面的得工廠生成對象的時候就可以創建一個用戶自己的對象。
看一下是如何初始化ModuleConfig,看下面的源代碼:
   protected ModuleConfig initModuleConfig(String prefix, String paths)
        throws ServletException {
    /*************************************************************
這個地方,我們可以看到,此時就由ModuleConfigFactory直接創建了一個工廠對象,而此時我們用的配置就是上面我們初始化后的配置。
假如用戶自己做了配置,那么此時初始化的工廠就是用戶指定后的工廠。假如沒有的話,那么就初始化的時默認的工廠。
也就是
    protected static String factoryClass =
        "org.apache.struts.config.impl.DefaultModuleConfigFactory";
的一個實例。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 泰兴市| 张掖市| 阳新县| 灌南县| 普格县| 定结县| 若羌县| 浪卡子县| 杭锦后旗| 张掖市| 天长市| 龙陵县| 宜城市| 黎平县| 无极县| 堆龙德庆县| 万源市| 库尔勒市| 堆龙德庆县| 安顺市| 井研县| 饶阳县| 德阳市| 邹平县| 云浮市| 章丘市| 恭城| 津南区| 突泉县| 洛宁县| 奈曼旗| 海林市| 清镇市| 清涧县| 桂平市| 延边| 富锦市| 建昌县| 上犹县| 佛冈县| 巫山县|