写点什么

了解 Seam 的嵌套对话和超时

  • 2008-01-17
  • 本文字数:812 字

    阅读完需:约 3 分钟

对 Web 应用开发人员来说,状态管理一直是一个挑战。对话应该在应用层而不是请求层来处理交互。Jacob Orshalick 以 Seam 的酒店预订示例应用为例,论述了 Seam 的对话模型,并解释了如何将嵌套对话运用于该示例。

Seam 的对话模型提供了一个简化方法来处理 continuations。如果你熟悉 continuation server 的概念,你就知道它们提供了包括无缝后退按钮处理和自动状态管理在内的功能。一个用户会话有很多 continuations,它们是执行过程中简单的状态快照,可在任何时候恢复。如果你对这个概念不熟悉,别担心,Seam 使其变得很简单。

这只是模型的一部分,Seam 还允许对话的嵌套:

嵌套对话提供了一个状态容器,它堆叠在最早的对话或外部对话的状态容器之上。任何在嵌套对话状态容器中设置的对象,都不影响可从父对话状态容器中访问的对象。这就允许每个嵌套对话能保持其自己独有的状态。

Orshalick 从定义嵌套对话到确保它被妥善地清空一路演示下来。他用 JBoss Developer Studio 来扩展 Seam 的酒店预订示例应用,生动地完成了嵌套对话的讲解。

Jacob Orshalick 不止澄清了嵌套对话,他还讨论了对话超时的话题:

对话超时似乎是一个普遍被误解的 Seam 概念。在 Seam 论坛上,我常常看见一些帖子宣称对话超时不起作用。实际上它工作得很正常,只不过你必须去理解它的语义。

Orshalick 用与嵌套对话相同的例子说明了,在处理多对话时,只有后台对话会受到对话超时的影响。照这样来说,只有会话本身超时时,前台对话才会超时。

Orshalick 最后总结到:

通过其简单的对话模型,Seam 提供了一个非常有吸引力的方法来管理状态。过去开发人员艰难处理的复杂问题,包括多窗口操作和后退按钮处理,都能处理得天衣无缝了。

查看英文原文 Understanding Seam Nested Conversations and Timeouts - - - - - -

译者简介: 王丽娟(Ivy Wang),一个快乐的程序员,持续从事 Java EE 中间件和 Java EE 企业应用的开发,关注软件架构技术。职业目标是成长为一名优秀的架构师。

2008-01-17 21:48903
用户头像

发布了 151 篇内容, 共 61.6 次阅读, 收获喜欢 18 次。

关注

评论

发布
暂无评论
发现更多内容

Spring系列篇:Spring容器基本使用及原理

简爱W

架构师训练营第十一周作业

张明森

安全系列之——主流Hash散列算法介绍和使用

诸葛小猿

hash 散列函数 md5 sha1 murmurhash

架构师训练营第十一周总结

张明森

游戏夜读 | 什么才值得纪念?

game1night

开源流数据公司 StreamNative 推出 Pulsar 云服务,推进企业“流优先”进程

Apache Pulsar

Apache Pulsar 消息系统 消息中间件

Apache 软件基金会顶级项目 Pulsar 达成新里程碑:全球贡献者超 300 位!

Apache Pulsar

Apache Apache Pulsar 消息系统 消息中间件

永续合约交易系统源码开发,合约交易所开发

13530558032

架构师第十一周作业及总结

傻傻的帅

ArCall 升级丨新增多项功能,可支持多人在线语音

anyRTC开发者

音视频 WebRTC 直播 RTC

微服务的基建工作

看山

微服务 基础设施 签约计划第二季

一次开零售店的经历(1)

石云升

零售店

论商品促销代码的优雅性

架构师修行之路

区块链承兑商支付系统开发,USDT支付软件搭建

13530558032

银行热衷拿区块链专利 背后有何意图

CECBC

区块链 银行

第二周作业

Vincent

极客时间 作业

第二周学习总结

Vincent

极客时间 极客大学 作业

微服务编程范式

看山

微服务 范式 签约计划第二季

架构师训练营第11周作业

Bruce Xiong

第11周作业

赵龙

第11周学习总结

赵龙

智能化转型将加速数字经济变革

CECBC

人工智能 数字经济

跨过语言银河,构筑智能鹊桥:百度NLP的十年、今夕与未来

脑极体

悬挂引用是如何被Rust消灭的?

袁承兴

rust 内存模型 指针 引用 泛型

云算力挖矿平台APP,一站式云算力挖矿系统开发

13530558032

沟通是一门艺术

石云升

情绪控制 沟通艺术

一起学MySQL性能优化

xcbeyond

MySQL 性能优化 MySQL性能优化

区块链数字钱包定制开发,数字货币钱包开发费用

13530558032

一次开零售店的经历(2)

石云升

零售店

有益思考一则:框架性思维

石君

学习 方法论

架构师训练营 -- 第11周作业

stardust20

了解Seam的嵌套对话和超时_Java_Bryan Clauser_InfoQ精选文章