选择显示字体大小

基于weblogic 的ejb 学习笔记二

littleboys 原创
编辑实体bean的高级课程
1. 怎样开发主健类
ejb的主健类主要用做持久存储和ejb容器中的唯一标识符.
通常主健类的字段直接映射到数据库中的主健字段.
如果主健只是由单个实体bean字段组成.且其数据类型是基本的java类.如string,则bean作者不必开发自定义的主健类.
只需要在配置描述器中指定类的名字和主健字段即可

如果把主健映射到一个用户定义的类型,或者映射到多个字段,则bean的作者必须写出自定义的主健类.

主健类必须实现 java.io.serializable,而且包含主健字段.

对于cmp,字段名必须匹配实体bean中的相应的主健字段名,这将使ejb容器能够把适当的cmp字段赋值到主健类中的相应字段中.

2. 实现hashcode()方法
hashcode() 方法的实现原理是,利用主健字段,经适的处理后,生成并返回一个整数. 这个生成的整数称为散列码,用作表格的索引.
对于一个给定的主健,hashcode()方法的返回值应当总是一样的. 常见做法: 执行"异或" 操作.

3. 实现 equals() 方法
正确地实现equals()方法也需要一定的技巧. 任何equals() 方法的第一行都应当检查传递进来的引用是否是"this", 检查equals()
方法是否是针对自己的调用. 通常做法: 当容器有一个主健对象时,她要检查这个主健对象是否已经存在于数据结构中.

接着,equals() 方法需要检查传递进来的主健类的类型. 如果主健类是中继类(final),可以使用instanceof 进行简单的检查.
否则,传递进来的参数也许是主健类的子类.在这种情况下,equals() 方法必须使用getclass.equals, 以确保类的类型是匹配的

建议主健类采用终极类. (instanceof 效率要高一些)

最后,equals() 方法需要需要比较传递进来的对象的所有值. 如果所有值是相同的,说明对象也是相同的
注意: 要先比较散列码.

4 实体bean的继承和异构
实体bean 可以利用java的继承和异构的特性.

5. 继承的限制
尽管ejb 规范允许组件之间的继承,但夜游一些细微的规则限制了怎样设计和实现一个继承的ejb.
ejb的规则要求,本地接口的create() 方法返回的远程接口不能是一个子类,也不能是超类. 实体bean 的ejbreate() 方法也
必须返回主健类型,也不能是一个子类,也不能是超类.
类似的findbyprimarykey()方法必须使用主健类型作为参数返回远程接口.
这些要求限制了bean作者对继承的实现.

6. 继承和异构的设计模式

注意: 具有继承和异构特性的实体bean,很重要一点就是要确定一般情况下究竟都需要使用哪一些属性.

7 . 接口的继承

通过bean类的继承性,bean作者只需要在一个地方实现业务方法,其它实体bean就可以共享类中的方法了.

8 使用多个bean类
为本地和远程接口创建一个基本接口,不是达到异构共享的唯一方法. 另一个常见的做法是
使用等同的本地和远程接口,但采用不同的bean类实现其中的业务方法.
这种做法类似于使用一个具有若干不同实现的接口.
好处: 客户不知道或根本不管正在使用哪一种实现,客户机只对接口进行操作.

9. 实体bean 与锁

实体bean 不是可重入的或多线程的组件,每个实体bean实例也没有多线程控制的能力。
一次实体bean 类中的方法也不是同步化的。
实体bean实例不能是多线程的,所以ejb容器必须串行地执行所有的容器方法和业务方法。
这意味着当业务方法正在执行时,ejb容器不能再调用其它方法,比如 ejbpassivate()方法。

并发控制:
一种做法是对每一个事务都激活实体bean实例。同过数据库的访问锁的方式进行并发处理。
一种方法是,每一个主健只保持一个实体bean实例,这样一次只有一个事务可以访问实体bean。一旦
前一个事务提交或回滚,才允许另一个事务使用这个实体bean实例。
并发控制策略:
数据库并发控制:
除非特别情况,应尽量使用默认的数据库并发控制。
排它性并发控制:
from-javaresearch.org


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons