📄 globalobjectprovider.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 + -