SEAM学习笔记(一)-----------上下文相关组件模型
来源:互联网 发布:七乐彩出号绝密算法 编辑:程序博客网 时间:2024/05/21 09:40
突然读到了很老的一句话,不动笔墨不读书。想想读书笔记的习惯一直没有养成,而确实之前学过的技术,做过的工程许久不翻就已经不记得了,毕业设计邱老要用SEAM+RICHFACES,没接触过,边看边学,记点东西以后备忘。
上下文相关的组件模型--Seam上下文(上下文的概念不是很清晰)
Stateless context
无状态,没太大意思,有不面向对象的争议,重要。
Event context
最窄的有状态上下文,web request上下文的泛化(generalize),其中与JSF相关的时间上下文比较重要,时间上下文相关联的组件在请求结束时被销毁,他们的状态至少在请求的生命周期中是存在并且是定义良好的
RMI或者Seam Remoting调用Seam组件的时候,一个时间上下文将为这个调用而被创建和销毁。
Page context
页面上下文允许将状态与一个渲染页面的实例相关联,可以在Event Listener中初始化状态,或者在实际渲染页面的时候初始化状态。,任何源于该页面的事件都可以访问这些状态,对支持可点击列表这种功能时特别有用。
Conversation context
用户会话,跨越多个Serverlet,多个请求和多个数据库事务。
一些业务会话仅存在一次请求中。
跨越多个请求的业务会话必须通过Seam提供的anno注释
一些业务会话同时也是tasks。任务是一种业务会话,它特指一个长时间运行的业务会话,当正确完成后,可能会触发一业务流程状态的转换,Seam为任务划分提供了专门的注解。
业务会话是可以嵌套的
通常,业务会话是由Seam保存在Servlet Session中,跨越请求,Seam实现了可配置的conversation timeout,可以自动销毁不活动的业务会话,这就可以确保,如果用户取消会话,用户的登录Session中保存的状态不会无限增长。
长时间运行的业务会话中所产生的并发请求,Seam按顺序执行。
Seam也可以配置成把对话状态保存在客户端浏览器中。
Session context
保存与用户登录session相关的状态,虽然当需要多个业务会话中交换状态的时候很重要,但是一般不建议使用session上下文保存组件,除非是登录用户相关的全局变量。
Business context
业务流程上下文保存了长时间运行的业务流程相关的状态
BPM引擎jBPM
生命周期通过外置的process definition language来定义,没有特别的注解来用于划分业务流程
Application context
即servlet中servlet上下文,保存的是静态信息,如配置数据,引用数据或者元模型。
Context various上下文变量
context搜索优先级
组件实例是由特定的范围内取得的,其他的时候是通过优先级顺序在所有有状态范围内搜寻。 顺序为
event page conversation session business process application
通过Context.lookupStatefulContexts()来执行带优先的搜索。
并发模型
Servlet和EJB都没有规范程序的并发请求该怎么处理
Servlet让所有的线程并发运行,把线程资源安全共享的任务交给代码
EJB允许无状态组件并发,当访问有状态session bean时,就会抛出一个异常。
- SEAM学习笔记(一)-----------上下文相关组件模型
- SEAM学习笔记(二)-----------Seam组件
- 上下文相关的组件模型
- SEAM学习笔记(三)
- Seam中的Query组件(学习)
- seam学习笔记
- SEAM学习笔记2
- Seam 学习笔记
- Seam文件(图片)上传及相关学习记录
- seam 注解(一)
- 对Seam Carving的初步学习(一)
- Seam的Conversation上下文
- 声学模型学习笔记(一) HMM
- COM组件学习笔记一
- Flamingo Seam 组件学习——EntityValidator组件
- Seam下的Query组件(二)
- JAVA学习笔记(四十九)- Swing相关组件
- Spring学习笔记一: Bean工厂(BeanFactory )与应用上下文(ApplicationContext)BeanFactory
- C# Tostring() 格式大全
- 《佛密诸事》第二十七章:文字的能量作用
- UDP发数据报
- 给CSV文件数据增加双引号
- Linux 发行版本一览
- SEAM学习笔记(一)-----------上下文相关组件模型
- decode 与 case when ** and ** then ** end 总结
- 一句Update语句返回响应0条记录的思考
- 给80后年的30个忠告
- January 27th Wednesday 2010
- 用脚本实时显示Linux网络流量
- 浙江大学2008年考研复试机试第5题
- RUBY ON RAILS 插件收录: CACHE:Sweeper Generator
- hql 语法