动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
电脑书籍下载:程序设计书籍 | 数据库教程书籍 | 平面与多媒体书籍 | 网络通讯书籍 | 系统管理书籍 | 网络安全书籍 | 认证考试书籍
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Java教程 ]的信息



本月文章推荐
.with 语句.
.Java入门笔记1_HelloWorld.
.Java变量的赋值.
.J2ME 实现可伸展目录树TreeList(.
.利用视图链接使Eclipse应用程序更.
.开发java 工具集.
.对Java提供的两个Map进行的性能测.
.多形性扩展性.
.JDBC 概述(六).
.你知道如何才算掌握Java(J2EE篇.
.混合Eclipse、WTP、Struts和Hibe.
.专家访谈: WebSphere Commerce.
.J2EE综合:如何处理大数据量的查.
.新一代网络模式Web 2.0火爆.
.全面了解jar问题.
.利用Java实现串口全双工通讯 (转.
.JBUILDERX 初体验.
.如何轻松编写一个强大的字符串分.
.Java EE 5规范横空出世.
.一个Java先行者的追寻之路.

Enterprise JavaBeans导论5

发表日期:2008-1-5 |



  实体bean的内外存交换
  现在应该来看看Javax.ejb.EntityBean接口。
  
  public interface javax.ejb.EntityBean extends EnterpriseBean {
  public void ejbActivate() throws RemoteException;
  public void ejbPassivate() throws RemoteException;
  public void ejbRemove() throws RemoteException,RemoveException;
  public void setEntityContext(EntityContext ctx) throws RemoteException;
  public void unsetEntityContext() throws RemoteException;
  public void ejbLoad() throws RemoteException;
  public void ejbStore() throws RemoteException;
  }
  
  活化和钝化的过程与会话bean类似。然而,不在事务中的实体bean是无状态的;其状态总是和底层的数据同步的。假如我们象钝化会话bean那样钝化实体bean,则当钝化无状态实体bean时只会删除它。但是因为容器调用finder方法需要匿名的实体bean,容器可能为此把不活动的实体bean钝化到一个私有内存池中。一旦从EJBObject中删除实体bean,则同时删除了标识符(主键关联)。
  当客户端调用没有相关的实体bean的EJBObject的商业方法时,容器就可能用这个内存池重新分配实体bean. 注重这个内存池中的bean没有标识,可以被任何EJBObject重用。容器可以可以不维护任何有EJBObject的实体bean,除非有一个商业方法在通过EJBObject被调用。假如实体bean在事务中则需保持其与EJBObject的关联。
  
  自治理的持久性
  因为实体bean代表底层的数据,因此我们需要把数据从数据从数据库中取出然后放在bean中。当容器第一次把一个实体bean的实例与EJBObject关联时,它就开始了一个事务并调用了这个bean的ejbLoad()方法。在这个方法中开发者必须提供从数据库中取出正确的数据并把它放在bean中。当容器将要提交一个事务它首先调用bean的ejbStrore()方法。这个方法负责向数据库中回写数据。我们称之为自治理持久性,因为bean方法中的代码提供了这种同步。
  当ejbLoad()方法完成时,bean有可能与底层数据库不一致。商业方法的调用触发了与EJBObject关联的bean的分配,然后在事务中执行的ejbLoad()必须在部署描述符中声明。根据接收到的方法调用请求,EJBObject和容器一起建立一个事务上下文。容器分配EJBObject的bean并调用bean的ejbLoad()方法。这个方法现在运行在事务上下文中。这个事务上下文传递给数据库,根据部署描述符中指定的孤立性级别,这个事务锁定数据库中被访问的数据。
  只要事务上下文活动,数据库中的数据就一直保持锁定状态。当客户端或容器提交事务时,容器首先调用bean的ejbStore()方法,把bean中的数据回写到数据库中。
  相应的数据库记录在ejbLoad()和ejbStore()间保持锁定保证了bean和数据库间的同步。其间可以进行不同的商业方法调用。而且,ejbLoad()和ejbStore()明确地区分了事务边界,事务中可以进行任何商业方法调用。事务的持续时间由部署描述符决定,也可能由客户端决定。注重不必使用ejbActivate()和ejbPassivate()方法来执行与数据库间的同步。
  
  容器治理的持久性
  假如部署描述符声明bean使用容器治理的持久性,则不用ejbLoad()和ejbStore()来访问数据库。容器会把数据从数据库中导入到bean中,然后调用bean的ejbLoad()方法来完成从数据库中接收数据。
  同样地,容器调用bean的ejbStore()方法来完成把数据回写到数据库中。这些方法实际上没有执行任何数据库操作。当开发商用复杂的工具来提供容器治理持久性时,如自动产生能进行对象--关系映射的实体bean类,规范规定了厂商必须提供的容器治理实体持久性的最小需求集。
  部署描述符可以指定bean的一个public域来实现与数据库列简单映射。容器使用部署描述符读出bean的这个public域并写到相应的列,或从数据库列中读出数据写到public域中。容器治理的持久性对EJB开发者来说是非常好的服务,且不需对象--关系影射等其他复杂的机制,开发者会发现它比自治理的持久性更有效率。
  
  部署描述符
  区分EJB开发的角色
  EJB开发中两个主要的角色是bean开发者和bean部署者。有很多属性开发者不能预知,如数据库的网络地址,使用的数据库驱动程序等等。部署描述符作为由开发定义的特性表,由部署者添入正确的值。部署描述符有标准的格式,在开发和部署环境中是可移植的,甚至在不同EJB平台间也是可移植的。 Enterprise bean的行为控制
  除了为开发和部署的协同提供一个标准的属性单,部署描述符也应包含bean应如何执行有关事务和安全的细节信息。一些如访问控制链(ACL)等属性,也应该由部署者来调整以保证适当的用户能在运行时使用bean.其它属性,如事务信息,有可能完全由开发者指定,因为一般由开发者创建数据库访问代码,并熟知bean的方法应如何运行事务。定义部署描述符
  部署描述符是一个标准的Java类。创建一个实例,导入数据,然后串行化。这个串行化的部署描述符放在一个jar文件中并和enterprise bean类一起送到部署环境。部署者读取这个串行化的部署描述符,可能修改一些属性值,然后使用这个修改后的部署描述符来安装enterprise bean.
  下面是部署描述符的一部分内容。它是两个其它的部署描述符类的超类。实际上超类是描述这个bean的描述符。
  
  Javax.ejb.deployment.DeploymentDescriptor
  ·bean home name
  ·bean class name
  ·home interface class name
  ·remote interface class name
  ·environment properties
  ·control descriptors
  ·Access control list
  
  DeploymentDescriptor有两个子类:
  
  javax.ejb.deployment.SessionDescriptor
  ·state management type
  ·session timeout
  
  javax.ejb.deployment.EntityDescriptor
  ·list of ocntainer-managed fields
  ·primary key class name
  
  描述符为实体bean和每个方法定义了事务和安全属性。这些对象的一个数组在DeploymentDescriptor中指定。
  
  javax.ejb.deployment.ControlDescriptor
  ·transaction isolation level
  ·Method object to which this descriptor applies
  ·run-as mode(for odentity mapping)
  ·run-as identity(for identity mapping)
  ·transaction attribute
  
  部署一个enterprise bean时,分配对应的描述符,然后初始化,串行化,再将其与enterprise bean类一起放入到一个jar文件中。不同厂商在定义部署描述符时可能有不同的方式。例如,一个厂商可能使用文本方式,而另一厂商可能提供图形工具。但最后结果的部署描述符是一个标准的格式,并且在不同平台间是可移植的。
  
  EJB Jar文件
  为了包装一个enterprise bean,bean的类,接口和串行化的部署描述符放在一个jar文件中。这个jar文件必须有一个manifest文件的入口以声明一个enterprise bean的部署描述符。
  Name:AccountDD.ser
  Enterprise-Bean:true
  在manifest中作为enterprise bean列出的是部署描述符,而不是bean类。部署描述符除了定义enterprise bean,还提供jar文件中所有文件的完整描述。开发者不必关心EJB jar文件的创建。厂商应该提供一个工具来帮助开发者创建部署描述符,然后把所有必须的文件打包进一个jar文件中。

上一篇:Enterprise JavaBeans导论4 人气:225
下一篇:Enterprise JavaBeans导论6 人气:218
浏览全部Java的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-7-6 飞天论坛FTBBS ASP v6.3 Build 0
2008-7-6 飞天论坛FTBBS ASP v6.3 Build 0
2008-7-6 飞天论坛FTBBS ASP v6.8 Build 0
2008-7-6 讯息内容管理系统 v2.1
2008-7-6 三五电影程序 v2.0
2008-7-6 神鹰腾讯小说小偷 v3.0
2008-7-6 EasyIDE Framework v1.0 Build 2
2008-7-6 品告CMS系统(电影版) v0.9
2008-7-6 QQ自动登录器 C# 源码 v1.0
2008-7-5 AgileMessenger即时通讯工具 v1.
2008-7-5 GoodCalculator2.0版固件计算器
2008-7-5 RepoName源地址搜索工具 v1.21b
2008-7-5 AgileMessenger即时通讯工具 v1.
2008-7-5 TouchCopy多媒体管理软件 v3.13完
2008-7-5 VideosTone视频铃声 v1.1汉化破解
2008-7-5 TouchPad触摸板 v4.44破解版
2008-7-5 VideosTone破解补丁 v1.0
2008-7-5 Feeds GoogleReader客户端 v0.4.3


  发表评论
姓 名: 验证码:
内 容:
[ 汉字翻译拼音 ] [ 广告代码 ] [ 符号对照表 ] [ 进制转换 ] [ 经典小工具 ] [ 个税计算 ] [ 汉字简繁转换 ] [ 普通单位换算 ] [ 公制单位换算 ]
[ 生辰老黄历 ] [ 国内电话区号 ] [ 国家代码与域名缩写 ] [ 文字加密解密 ] [ 健康查询 ] [ 万年历 ] [ 手机号码查询 ] [ ip搜索 ] [ Google PR查询 ]
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報