如何使用XML实现多渠道接入网站的构架(3)
2008-02-23 05:51:11来源:互联网 阅读 ()
/**
* Router存储的树front
*/
private static java/util/Hashtable.java.html" target="_blank">Hashtable QueuePairFront = null;
/**
* Router存储的树back
*/
private static java/util/Hashtable.java.html" target="_blank">Hashtable QueuePairBack = null;
/**
* 本router的index号码
*/
private long routeIndex = 0;
/**
* router的设置
*/
private RouterDefine define = null;
/**
* 用于判断是路由的起回点
*/
private java/lang/String.java.html" target="_blank">String action = "";
/**
*此变量只是用于在routeto方法中申请新的class
*/
private java/lang/String.java.html" target="_blank">String classname = "";
/**
*/
public XMLRouter(long index)
{
routeIndex = index;
}
/**
* 路由
* @throws Exception
* @roseuid 3F1616BD0186
*/
public void routing(Env env) throws RouterException, java/lang/Exception.java.html" target="_blank">Exception
{
/*如果为起点*/
if( action.equalsIgnoreCase( RouterConstant.CFG_FUNC_ROUTETO ) )
{
……
}
/*如果为返回点*/
else if( action.equalsIgnoreCase( RouterConstant.CFG_FUNC_ROUTEBACK ) )
{
……
}
/*否则为错误*/
else
throw new RouterException("Set Router action error.");
}
/**
* 读取本Router的id号.
* @return long
*/
public long getIndex()
{
return routeIndex;
}
/**
* 清除所有对象.
* @throws RouterException
*/
public void clear() throws RouterException
{
QueuePairFront.remove(new java/lang/Long.java.html" target="_blank">Long(routeIndex));
QueuePairBack.remove(new java/lang/Long.java.html" target="_blank">Long(routeIndex));
/*系统回收*/
java/lang/System.java.html" target="_blank">System.runFinalization();
}
/**
* 设置本Router的设置.
* @param def
* @throws RouterException
*/
public void setDefine(RouterDefine def) throws RouterException
{
define = def;
}
/**
* 设置action的值
* @param actionName
* @throws RouterException
*/
public void setAction( java/lang/String.java.html" target="_blank">String actionName )
{
action = actionName;
}
}
Service类
| 以下是引用片段: package com.web.common; import com.web.platform.Exception.RouterException; /** * Service的父类,abstract */ public abstract class RouteService { /** */ public RouteService() { } /** * routeTo方法,是交易的起点。 * @param env * @throws RouterException */ public abstract void routeto(Env env) throws RouterException; /** * routeBack,交易的结束点, * @param env * @throws RouterException */ public abstract void routeback(Env env) throws RouterException; /** * routeaccept方法,是交易的接收点,也是routeto的接收函数, * routeaccept为被动交易对象的主要处理函数 * @param env * @throws RouterException */ public abstract void routeaccept(Env env) throws RouterException; /** * routing方法,是Service对外的接口函数 * @throws RouterException */ public abstract void routing() throws RouterException; |
接下来则需要实现所有的Services的类了,这里就不做介绍了.
六.说明
这个Router到目前为止只能实现同步的交易, 暂时不支持异步的交易,但是由于对Router使用了Composite的模式设计的,实现异步交易也是可以扩展的,这里不做详细分析.
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash
