`
Javabengou
  • 浏览: 173141 次
  • 性别: Icon_minigender_1
  • 来自: 郴州
社区版块
存档分类
最新评论

An Introduction to Stateful Framework

阅读更多
在早前,我们已经知道JBoss Seam如何简单的整合EJB3.0和JSF。不过当你了解更多JBoss Seam后,你会觉得,那些只是JBoss Seam的皮毛而已。慢慢的我们将解更多的被称为"next generation"web application framework.的JBoss Seam吧!

                   1.Correct Usage of ORM
                    JBoss Seam是由Gavin King创建的(如果还不知道他-----Gavin King,那就Google下吧,你就会知道Hibernate,因为我们这里还要讲到Hibernate)。首先, JBoss Seam是一个stateful framework,它的关键目标就是更好的与ORM一起工作,并且stateful framework的关键就是ORM的正确使用。
                     ORM的一个主要挑战就是对象世界和关系数据库世界。这里有个关键概念"lazy loading"。当the framework从一个关系数据库加载一个对象时,它并不需要加载与它关联的所有对象。为了更好的理解延迟加载。先看个实例。
                      以下代码是个典型的数据模型:A Teacher object might be associated with a number of Student objects, and each Student object might be associated with a number of Assignment objects, etc.
               
 

   1. @Entity  
   2. public class Teacher implements Serializable {  
   3. protected Long id;  
   4. protected String name;  
   5. protected List  students;  
   6. // getter and setter methods  
   7. }  
   8. @Entity  
   9. public class Student implements Serializable {  
  10. protected Long id;  
  11. protected List  assignments;  
  12. // getter and setter methods  
  13. }  
  14. @Entity  
  15. public class Assignment implements Serializable {  
  16. // ... ...  
  17. }
  18.


假如当加载Teacher object时加载了所有的关联的Student,Assignment ,但是应用程序只需要Teacher object,这样无非是浪费了巨大的资源。Hibernate解决这个方法通过"lazy loading"。这样不会在加载Teacher object的时候,同时加载初始化所有与他关联的对象,可以通过Teacher object的Teacher.getStudents()返回数据库加载Teacher  List.

很好,到现在为止,一切都还不错。但是真正的问题在于web application的数据访问层是"stateless"。作为实例,让我们来看下数据如何在流行的Spring中怎么加载的。当HTTP请求到来,将被转发到Spring/Hibernate并且Hibernate延迟加载Teacher object。得到的数据返回给web表现层。现在,页面要呈现与Teacher object关联的student names(未完,保存,继续......)

<br><a href="http://www.linkedcast.cn" target="_blank"><img src="http://www.linkedcast.cn/website/monitor/access.do?id=9d19090d1a0056555a" border="0" alt="链客中国,写文章也可以赚钱哦"></a>
分享到:
评论
2 楼 wokaoleaikao 2007-12-16  
1 楼 bingleng 2007-10-28  
Seam是个好东西呀,不错呢

相关推荐

    Introduction to Apache Flink

     End-to-End Consistency and the Stream Processor as a Database  Flink Performance: the Yahoo! Streaming Benchmark  Conclusion Chapter 6 Batch Is a Special Case of Streaming  Batch Processing ...

    Laravel开发-stateful

    在Laravel框架中,"stateful"通常指的是应用或组件具有状态管理能力,即它可以跟踪并根据当前状态执行特定操作。这里的"Laravel开发-stateful"可能是指使用Laravel 5来构建一个具备状态转换机制的应用,例如订单处理...

    Laravel开发-stateful-eloquent

    当我们谈论“Stateful Eloquent”时,这意味着我们将利用Eloquent来实现一个状态机,这是一种设计模式,用于管理对象的状态转换。状态机在业务逻辑中尤其有用,例如处理订单状态、用户账户状态等,它确保了对象状态...

    spark2018欧洲峰会中关于StructuredStreaming中stateful stream processing的ppt

    ### Spark 2018 欧洲峰会中关于Structured Streaming中的Stateful Stream Processing 在Spark 2018欧洲峰会中,有一场引人注目的演讲深入探讨了Structured Streaming框架下的状态流处理(stateful stream processing...

    Stateful--sessionbean.zip_sessionBean_stateful

    标题"Stateful--sessionbean.zip_sessionBean_stateful"表明这个压缩包包含有关有状态会话Bean的实现资料,可能包括设计思路、步骤截图和源代码。这些资源对于理解如何创建和使用SFSB至关重要。 描述中的"有状态的...

    Learn Google Flutter Fast 65 Examples.rar

    Introduction to Flutter. Installing Flutter. Your first Flutter App. Dependencies & Packages. Introduction to Widgets & Composition. Stateless Widgets. Stateful Widgets. Basic Material Widgets. Multi...

    Stateful NAT64 Run.pdf

    Stateful NAT64 Run.pdf

    Setup IPV6 DHCP server with stateful status

    Setup IPV6 DHCP server with stateful status

    Manning.Ajax.in.Practice.Jun.2007.pdf

    top of this stateless protocol, opening the door to stateful applications such as reservation systems and online commerce. Encrypted layers were built on top of the core protocol, to give confidence...

    有状态stateful与无状态stateless地址转换.docx

    有状态stateful与无状态stateless地址转换技术分析 有状态(stateful)和无状态(stateless)地址转换是两种不同的地址转换技术,分别应用于不同的网络场景中。本文将对这两种技术进行详细分析,比较它们之间的差异,并...

    Stateful_Firewall:状态防火墙

    Stateful_Firewall 特征: ●状态防火墙:TCP,UDP和ICMP。 ●防火墙文本规则/文本规则解析器。 ●可以在不同接口和pcap文件之间交换数据包。 ●使用哈希表可以更快地进行流查找。 ●NAT转换器。 ●ARP处理系统。 ●...

    A Deep Dive into Stateful Stream Processing in Structured Streaming

    A Deep Dive into Stateful Stream Processing in Structured Streaming A Deep Dive into Stateful Stream Processing in Structured Streaming

    js_stateful-object

    在JavaScript的世界里,"js_stateful-object"这个标题暗示了我们正在探讨的是一种具有状态的对象。状态(State)是指一个对象在某个时刻所处的情况,它通常与对象的行为和属性有关。JavaScript,作为一种动态类型的...

    FMSoft_uniGUI_Complete_Professional_1.0.0.1386_RC

    uniGUI Web Application Framework extends Web application development experience to a new dimension. uniGUI enables Delphi developers to create, design and debug web applications in IDE using a unique ...

    uniGUI 0.86.0.889

    uniGUI Web application framework makes developing stateful Web applications easier than ever. uniGUI extends Web Application development experience to a new dimension. Each uniGUI application can ...

    terraform-provider-stateful:通过执行任意命令来管理任意对象的通用抽象有状态资源

    并会同stateful_*资源有可能调用任意在资源创建,更新或删除。 资源资源 该插件定义以下资源: stateful_map (键和值都必须是字符串) stateful_string 一般而言,如果将对象的真实状态处理为不透明的字符串...

    AkkaScala.pdf

    #### Introduction to Akka **Akka** is a toolkit and runtime designed for building highly concurrent, distributed, and fault-tolerant systems on the Java Virtual Machine (JVM). It leverages the actor ...

    Your State is Not Mine A Closer Look at Evading Stateful Internet Censorship

    Your State is Not Mine A Closer Look at Evading Stateful Internet Censorship

    SAP PO/PI教程 Process Orchestration The Comprehensive Guide

    1 Introduction to SAP Process Orchestration 1.1 Historical Overview and Evolution 1.1.1 SAP Process Integration 1.1.2 SAP Composition Environment 1.1.3 SAP Process Orchestration 1.1.4 SAP Process...

Global site tag (gtag.js) - Google Analytics