posts - 176, comments - 240, trackbacks - 0, articles - 7

web程序中的scope

Posted on 2006-01-15 22:35 canonical 阅读(571) 评论(0)  编辑  收藏 所属分类: 软件开发
    jsp模型为web程序提供了page/request/session/application这四个基础性的变量域. 这种变量域的划分很大程度上是纯技术性的, 与我们的业务应用中需要的scope支持相去甚远. 当我们把业务对象的生命周期映射到这些变量域的时候, 经常出现不适应的情况. 例如我们可能被迫选择把与某项业务相关的所有数据放置在session中并在各处硬编码一些资源清理代码. 为了实现与愈来愈复杂的应用开发的契合, 我们需要能够在程序中定义与应用相关的变量域并实现对这些变量域的管理, 即我们需要一种自定义scope的支持而不是使用几个固定的scope.
    JBoss的Seam项目http://www.jboss.com/products/seam 中引入了一种所谓declarative application state management的机制
    http://blog.hibernate.org/cgi-bin/blosxom.cgi/Gavin%20King/components.html, 其中的关键是增加了business process和conversation这两个应用直接相关的scope, 它们都是可以根据需要自由创建的. business process context使用jBPM支持long running的状态保持. 而conversation context是对session使用的一种精细化, 与beehive项目中的page flow所需的scope支持非常类似 http://beehive.apache.org/docs/1.0m1/pageflow/pageflow_overview.html. 但目前seam中的scope支持仍是非常原始的, 不支持嵌套的context, 这意味着对于复杂应用尚无控制和管理能力.

只有注册用户登录后才能发表评论。


网站导航: