第22章 会话Bean.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
22.1 会话Bean的分类及生命周期 会话Bean分无状态会话Bean和有状态会话Bean。 无状态会话Bean与有状态会话Bean的区别在于客户的多次调用之间,会话Bean是否保存客户端的状态,如果保存则为有状态,如果不保存则为无状态。 22.1.1 有状态会话Bean的生命周期 22.1.2 无状态会话Bean的生命周期 22.2 编写会话Bean 会话Bean包括两类文件:Bean类和业务接口。 Bean类用于实现会话Bean的核心功能,会话Bean要实现哪些功能,需要在Bean类中实现这些方法。 业务接口用于声明哪些方法可以供客户端访问,客户端对EJB的访问是通过接口进行的,与Bean类无关。 22.2.1 编写业务接口 Bean类的业务接口用于声明哪些方法可以供客户端访问; 如果供远程客户端访问需要声明远程业务接口; 如果供本地客户端访问需要提供本地业务接口; 远程业务接口使用@Remote声明,本地业务接口使用@Local声明。 22.2.1 编写业务接口 远程业务接口 @Remote public interface Calculator { public float add (int a, int b); public float subtract(int a, int b); } 22.2.1 编写业务接口 本地业务接口: @Local public interface Calculator { public float add (int a, int b); public float subtractint a, int b); } 22.2.1 编写业务接口 同一个业务接口不能既作为Bean的本地业务接口又作为Bean的远程业务接口。 如果在业务接口上不使用@Remote和@Local,接口的类型可以在Bean类上指定 22.2.2 编写会话Bean的Bean类 对会话Bean的Bean类的要求: 类必须标识为@Stateful或者@Stateless,前者表示有状态会话Bean,后者表示无状态会话Bean。 实现业务接口,该接口是一个纯Java接口,可以是远程接口,也可以是本地接口,也可以同时有两个接口,分别表示本地接口和远程接口。 必须实现业务接口中定义的所有方法。 22.2.2 编写会话Bean的Bean类 有状态会话Bean也可以实现下面的方法: 生命周期回调方法: @PostConstruct,容器在创建Bean实例之后调用该方法; @PreDestroy,容器在释放Bean实例之前调用该方法; @PostActivate,容器在激活有状态会话Bean之后调用该方法,仅仅对有状态会话Bean有用; @PrePassivate,容器在挂起有状态会话Bean之前调用该方法,仅仅对有状态会话Bean有用。 实现任何可选的标识为@Remove的业务方法,用于释放有状态会话Bean的实例,仅仅对有状态会话Bean有用。 22.2.2 编写会话Bean的Bean类 使用@Stateful或者@Stateless进行注释 有状态会话Bean: @Stateful public class CartBean 无状态会话Bean: @Stateless public class SalaryBean 22.2.2 编写会话Bean的Bean类 实现业务接口 如果Bean类实现了一个接口,这个接口被认为是Bean类的业务接口,默认是本地接口。 Bean类可以有多个接口,如果Bean类有多个接口,必须使用Local或者Remote注释。 22.2.2 编写会话Bean的Bean类 如果Calaculator接口中使用@Remote或者@Local,Bean类可以写成: @Stateless public class CalculatorBean implements Calculator { 如果没有使用@Remote或者@Local: @Stateless @Remote public class CalculatorBean implements Calculator { 如果CalculatorBean实现了多个接口: @Stateless @Remote(value=Calculator.class) public class CalculatorBean implements Calculator,A,B { 22.2.2 编写会话Bean的Bean类 实现业务方法 方法名不能以ejb开始,以防与EJB规范定义的回调方法混淆。例如,不能把业务方法命名为ejbCreate或者ejbActivate。 访问控制符必须是public。 如果Bean允许通过远程接口进行远程访问,方法和返

文档评论(0)

80092355km + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档