⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 globalobjectprovider.java

📁 在线模拟选课系统
💻 JAVA
字号:
/*
 * This product includes software developed by the
 * Apache Software Foundation (http://www.apache.org/).
 */
package ch07.global;

import java.util.*;
import org.apache.commons.jxpath.JXPathContext;

//这个类用来提供逻辑层和数据访问层的对象
public class GlobalObjectProvider 
{
    private static Hashtable logicObjectFactory = new Hashtable();
    private static Hashtable databaseObjectFactory = new Hashtable();
    private static JXPathContext configContext = null;
    
    //初始化,获得配置文件的对应DOM
    public static void init( JXPathContext tmpContext )
    {
        configContext = tmpContext;
    }
    
    //根据Key获得对应的对象
    public static Object getLogicService(String sKey)
    {
        try
        {
            Object obj = logicObjectFactory.get(sKey);
            if ( obj == null )
            {
                //根据配置文件创建一个新对象
                String sClassName = (String)configContext.getValue(
                        "ch07-config/logic[@key='"+sKey+"']/@className");
                obj = Class.forName( sClassName ).newInstance();
                logicObjectFactory.put( sKey, obj);
            }
            
            return obj;
        }
        catch(Exception e)
        {
            return null;
        }
    }
    
    //根据Key获得对应的对象
    public static Object getDatabaseService(String sKey)
    {
        try
        {
            Object obj = databaseObjectFactory.get(sKey);
            if ( obj == null )
            {
                //根据配置文件创建一个新对象
                String sClassName = (String)configContext.getValue(
                        "ch07-config/database[@key='"+sKey+"']/@className");
                obj = Class.forName( sClassName ).newInstance();
                databaseObjectFactory.put( sKey, obj);
            }
            
            return obj;
        }
        catch(Exception e)
        {
            return null;
        }
    }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -