循速渐进学用Session Bean(四)[Java编程]
本文“循速渐进学用Session Bean(四)[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
Session Bean要求、限制和答应
在EJB标准中,对Session Bean有一些限制和要求.这些限制会指出哪些是bean必须做的,哪些是不能做的,以及bean必须实现的一些办法和接口.也有一些标准指出哪些处理是答应做的,这是为了避免你认为这些处理是被别的限制禁止的.
实现SessionBean接口
session bean必须实现javax.ejb.SessionBean接口
声明该类为Public,而不是Final大概Abstract
要记着EJB容器需求成立bean实例,因此该类必须是public,并且不是抽象的.
成立一个Pubic,无参数的构造器
一样,由于EJB容器必须成立bean的实例.假如构造器是protected大概private,容器就不能成立实例.
不要实现finalize办法
固然你很少需求定义一个finalize办法,不过EJB标准中还是明文禁止在session和entity bean中定义finalize办法.假如你的bean需求做任何排除的操作,它们应当在ejbRemove大概ejbPassivate办法中举行.
实现create办法和全部的remote办法
一个session bean必须实现Home接口中指定的全部create办法,以及Remote接口中指定的全部办法.在实现这些办法时,有一些额外的要求:
. 这些办法必须是public,而不能是static大概final
. 参数和返回的范例必须是有效的RMI/IIOP返回范例.在普通的情形下,这意味着必须是原有的范例(int, char, double等),可串行化的对象大概Remote接口.
. 办法名不能以ejb开首(这将令EJB的配置工具感到迷惑,并且大概带来冲突)
可挑选的实现Remote接口
关于一个bean可以实现Remote接口,这个特点也是挺重要的.在实现类中,此中的办法签名必须和Reomote接口中的一样,除了一点,就是实现类中的办法并不抛出RemoteException.也就是说,固然关于Remote接口的每个办法,在实现类中都必必要有呼应的办法对应,并且不需求作以下的声明:
public class ShoppingCartImpl implements SessionBean, ShoppingCart
实现Remote接口的缘由是:在漏掉一个办法时编译器将会奉告你,也就是说,假如没有实现Remote接口中的一个办法,编译器将会产生一个错误.不然,你将不知道漏掉了一个办法,直到你运行一个配置工具大概是打包工具为止.越迟发现错误,就要花越长的时间来改正它.
在实现Remote接口时,大概会碰到的问题是利用this关键字来传送对象,而不是利用session context中的getEJBObject办法.普通,当利用this而不是getEJBObject时,编译器将会产生一个错误,因为它等待一个实现Remote接口的对象,而实现类却这样做.通过实现Remote接口,你通过了编译,但是你在运行时又碰到了错误,这是由于与EJB容器等待的差别,实现类并非一个到Remote接口的精确引用.
提醒
固然实现Remote接口可以指出在编译时的错误,但是这样也会招致呈现一些直到运行时才会发现的错误,令改正起来很费时间.所以你最好不要实现Remote接口,而在配置时发现一些错误.
以上是“循速渐进学用Session Bean(四)[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |