引用
题记:Seam对开发的简化,对各种不同软件的统一能力,我想其主要来源不是创造了conversation域,不是使用了元注解,不是依赖于JSF,不是使用了反射机制,而是一种更加全局的域管理机制。那些其它因素都是为了这一目的服务的,或多或少的使这一目的的实现变得更加方便可靠。如果说Seam有什么决定性的区别于其它框架的东西,那就是它的全局域管理机制。
说明:1楼和2楼铺垫了很多基础的东西。如果没有耐性,可以把它们略过去,直接从第3楼读起。
另: 文章里的命,生命周期(lifecycle),上下文(context),域(scope)在这里指同一内容,可以互相替换。
不说Seam诞生的大环境和Seam产生的语言基础,只是说Seam本身的功能,大概也可以,不过我认为非常多的外在功能都只是某些环境外在因素和基本内在因素所决定了的。大环境和内在可能定了之后,细节的东西只是做就可以了。所以没有办法,还是得绕开Seam本身说些题外话。
JSF的加减法与Seam(一)
http://www.iteye.com/topic/137027大概说了一下 Seam诞生的环境,这是外在机会,是融合各种技术的可能性,是广的纬度。 这篇文章说说java上的可能性,是何让Seam具有了融合的本事,是内在能力,从深的纬度上说吧。
其实也不深,因为说JAVA,其实得从最基本的说起:
1. Java 对象的命
1.1 概述
这个命呢,就是生命周期,就是什么时候生下来可以用它,什么时候死了不能再用了。一个对象在内存中的时间和生命周期是不一定相等的,因为即使一个对象完全没有办法再用了,它仍然可能还在内存里。比如
void doIt() {
Object o = new Object();
o = null;
}
这个方法执行完了之后,o是没办法再用了,但是o可能仍然还在内存里,因为内存的垃圾回收有延时,术语叫做best effort,意思就是我尽我最大能力去回收了,但是回收回得来回不来,得看情况。这篇文章里说到的生命周期,是不考虑这个延时的,如果我没有办法再用这个对象了,我就认为它已经死掉了。
1.2 假如无状态
我举一个非常理想化的例子,假如java的所有的对象的都不能有状态,那对生命周期会有什么影响呢?
如果没有状态,那么所有对象都只能用方法调用。假设我有类A,B,C;而a,b,c是它们的对象。底下老这么说费事,凡是大写都是类,凡是小写都是对象。而a.getB()则假设a有属性b并且有它的getter和setter方法。
如果所有对象的状态不能改变,则只能是这样:
public static void main() {
A a = new A();
a.doSomthing();
}
class A() {
doSomething() {
B b = new B();
b.doSomething();
}
}
class B() {
doSomehing() {
C c = new C();
c.doSomething;
}
}
每个对象都得在某个方法里被创建(出生),而且必须在那个方法内被销毁(死亡)。那么所有的对象的生命都是和调用它的方法一样长的。这样产生了一个现象就是所有的被调用的对象一定比调用它的对象的命短,而且它出生于调用它的对象出生之后,死亡于调用它的对象死亡之前。 我们把一段生命周期称为“域”,则前者存在的域一定被包含在后者存在的域中。
如何断定的呢? 因为调用者的那个方法的域(也就是命,也就是生命周期)一定包含于调用者本身存在的域──因为任何时候我调用那个方法,拥有该方法的那个对象一定存在,否则该方法也就不能存在了(静态方法是特殊情况等会再说)。而被调用者存在的域一定被包含在调用者方法的域中,这刚才已经讨论了。所以:
对于任意 a通过它的方法doXYZ()来调用b来说:
b的域 包含于(被包含) doXYZ()的域, 而 doXYZ() 的域 包含于 a的域。
由此可知 b的域包含于a的域。
以此类推,如果a调用b,b调用c,c调用d…… 那么后者的域总是被包含在前者的域里,也就是说越成为被调用者,命越短,越成为调用者,命越长。且被调用者存在时,调用者必然存在。
分享到:
相关推荐
**JSF、Seam与JPA整合实例详解** 在现代Web应用开发中,JavaServer Faces (JSF)、Seam框架和Java Persistence API (JPA)是三个关键的技术组件。本实例将深入探讨如何利用这三者进行联合开发,帮助开发者实现高效、...
#### 二、JavaServer Faces 2 (JSF2) **1. 概述** - **定义**:JSF2是JavaServer Faces的一个重大更新版本,它是用于构建企业级Web应用程序的一种组件基础框架。相比于早期版本,JSF2引入了大量改进和新特性。 - *...
Seam 是一个强大的Java EE框架,它主要用于简化...同时,Seam与其他Java EE技术的集成也使得整个应用的架构更加灵活和强大。然而,由于Seam不断更新,开发者需要时刻关注最新文档和技术动态,以确保最佳的使用体验。
Seam与JSF的整合进一步强化了UI层的开发效率,它提供了更好的事件处理机制,使得JSF组件可以直接与Seam组件交互,降低了数据绑定的复杂性。 在Seam中,JSF和Hibernate的整合主要体现在以下几个方面: 1. **数据...
Seam、JSF、RichFaces 和 Ajax4jsf 是四个重要的Java Web开发框架和技术,它们在构建现代、交互式Web应用程序中发挥着关键作用。让我们深入探讨这些技术及其结合使用时的知识点。 **1. Seam** Seam是一个开源的Java...
JSF是一种用于构建Java Web 应用程序的标准框架(是Java Community Process 规定的JSR-127标准)。JSF(Java Server Faces)技术为开发基于网络用户界面的Java开发者提供了标准的编程接口API以及标签库。就像Struts框架...
**JSF、Seam与Hibernate简介** JSF(JavaServer Faces)是Java平台上的一个用于构建用户界面的组件模型框架,它提供了一种声明式的方式来创建动态Web应用程序。JSF的核心概念是组件,这些组件可以组合成用户界面,...
#### 二、Seam与JSF的互补性 Seam与JSF的结合,不仅弥补了JSF本身的不足,还为开发者提供了更为强大的功能集。具体来说,Seam对JSF生命周期进行了增强,主要包括以下几个方面: 1. **上下文状态管理**:Seam提供了...
**Seam框架**则是一个全面的Java EE应用框架,它将JSF与EJB、CDI(Contexts and Dependency Injection)、Spring等技术无缝集成,简化了Java EE开发的复杂性。Seam提供了统一的编程模型,允许开发者在JSF组件和后端...
此外,Seam与jBPM的集成允许开发者在应用中嵌入工作流管理,与Drools的结合则提供了规则引擎的支持,进一步增强了应用的业务逻辑处理能力。 总而言之,Seam作为一款集成化的Java EE框架,为开发者提供了一个强大且...
首先,Seam的核心设计理念在于减少不必要的分层,它将常见的Web层、业务层和持久层融合为两层:JSF(JavaServer Faces)视图层和Seam组件层。Seam组件分为Entity Bean和Session Bean两类。Entity Bean对应数据库表,...
[TipTec Development] JSF & Facelets & JBoss Seam 核心技术 (英文版) [TipTec Development] Essential JSF, Facelets & JBoss Seam (E-Book) ☆ 出版信息:☆ [作者信息] Kent Ka Iok Tong [出版机构] TipTec ...
Seam、JSF(JavaServer Faces)和Ajax4jsf是Java Web开发中重要的技术框架,它们在构建富互联网应用程序(Rich Internet Applications, RIA)时发挥着关键作用。这里,我们将深入探讨这三个技术的核心概念、特点以及...
java+jsf+js java+jsf+js java+jsf+js java+jsf+js java+jsf+js java+jsf+js java+jsf+js
这个压缩包集合了四个重要的Java Web开发框架,它们分别是Seam、JSF(JavaServer Faces)、RichFaces以及Ajax4jsf。这些技术在构建现代、交互性强的Web应用程序时发挥着关键作用。 **Seam** Seam是一款开源的集成...
《JSF2 API和JBoss Seam入门》是一本面向初学者和中级开发者的图书,旨在帮助读者快速掌握JavaServer Faces(JSF)2.0 API和JBoss Seam框架的使用。JSF是一种Java EE标准的用户界面组件模型,用于构建Web应用程序。...
**JSF(JavaServer Faces)** 是一种Java平台上的用户界面组件框架,用于构建Web应用程序。它提供了一种声明式的方式来创建用户界面,允许开发者使用HTML、XML(XHTML)和自定义标签来构建交互式的网页。JSF的核心...
4. **数据绑定**:Seam与JSF紧密集成,使得数据模型可以直接与用户界面元素进行双向绑定,简化了数据管理。 5. **安全性和事务管理**:Seam提供了内置的安全管理和事务处理机制,简化了这些关键领域的实现。 然后...