2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

了解 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:481332
用户头像

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

关注

评论

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

实时大数据Flink知识结构(超全整理,附知识脑图)

大象灵感

大数据 flink spark 实时数仓 流处理

2021年10月国产数据库流行度排行解读 浅谈基础软件发展之道

墨天轮

数据库 华为 opengauss Gauss DB 国产数据库

短短 146 天就成为 Apache APISIX Committer,我是怎么做到的?

API7.ai 技术团队

成长笔记 API网关 社区 Apache APISIX

第一周作业

赵先生

架构实战营

网易云信被纳入 Gartner 2021年《CPaaS 市场指南》研究报告

网易云信

音视频 云通信 Gartner

Flux架构思想在度咔App中的实践

百度Geek说

百度 架构 后端 短视频 Flux

如何实现CNN特征层可视化?终于懂了....

Jackpop

代码简洁之道:一行Python代码解决问题是时尚还是玄学

博文视点Broadview

敏捷QA需要编写测试用例吗?

BY林子

测试用例 敏捷测试

架构实战营模块 1 作业

VegetableBird

架构实战营 #架构实战营 「架构实战营」

架构训练营 - 第一周作业

二手攻城师

「架构实战营」

Java 有关 Integer 一个好玩的包装类

HoneyMoose

以开发之名 | 美好出行体验,“管家”一站实现

最新动态

IOS技术分享| ARCall视频通话重构

anyRTC开发者

ios 音视频 语音通话 视频通话 视频呼叫

Python小白福音!Github开源了一款神器....

Jackpop

Java 包装类和基本类型

HoneyMoose

模块一

华为云网络覆盖全球2500+站点,打造高品质、低成本接入体验

华为云开发者联盟

RTC 华为云 媒体服务 LiveVideoStack

学生管理系统架构

豪毅

架构实战营

数仓无损压缩算法:gzip算法

华为云开发者联盟

算法 deflate 无损 gzip 压缩数据

引导行业发展!旺链科技加入“可信区块链推进计划”

旺链科技

区块链 数字经济 产业区块链

模块一作业

Geek_1d37ea

左手 CloudWeGo,右手 Kratos ,如何选?

baiyutang

Go golang 微服务框架 10月月更

模块一作业

美好心情

「架构实战营」

Vue进阶(幺伍叁):Vue-highlight 实现代码高亮

No Silver Bullet

Vue highlight.js 10月月更

网络生病了怎么办?看华为云网络测量如何“悬丝诊脉”

华为云开发者联盟

华为云 云网络 网络故障 网络测量 SDN架构

OKR与影响地图,别再傻傻分不清

华为云开发者联盟

OKR 敏捷 影响地图 规划 目标

游戏数字资产复用——有哪些是你需要知道的?

龙智—DevSecOps解决方案

游戏开发 游戏引擎 perforce

只需2步,教你在Vue中设置登录验证拦截

华为云开发者联盟

Vue 浏览器 Token pringboot 登录验证

模块一作业及总结

Thomas

架构实战营

学习总结(第一周)

Geek_1d37ea

架构实战营

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