- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第5章 EJB-Enterprise JavaBeans
第5章 EJB 第5章 EJB-Enterprise JavaBeans 5.1 EJB概述 5.2 会话Bean 5.3 消息服务与消息驱动Bean 5.4 EJB的生命周期 5.1 EJB概述 EJB是Enterprise JavaBeans的缩写,又称为企业Bean,是一种Java服务器端组件模型,用于封装大型企业级应用的复杂、多变的业务逻辑。 EJB的目标:为可复用的服务器端组件而设计,让开发人员能集中于商务逻辑开发而不用花费太多精力于分布式服务器端系统底层问题的处理,从而使开发人员可以快速开发大规模的企业应用。 5.1.1 EJB与JavaBean比较 EJB与JavaBean并没有直接关系,可以说是两个完全不同的概念。 JavaBean是一台机器上同一个地址空间中运行的组件,是进程内组件,使用java.beans包开发,是Java 2标准版的一部分。 EJB是在多台机器上跨几个地址空间运行的组件,是进程间组件,使用javax.ejb包开发,是标准JDK的扩展,是Java EE的一部分。 5.1.2 传统EJB存在的问题 由于传统EJB(EJB 2.x)本身固有的复杂性,使得EJB的应用受到了很大影响,在实际项目中的应用也不是很多。以下是传统EJB的缺点: 需要创建若干个组件接口并实现若干个不必要的回调方法; EJB组件接口需要实现EJB Object或EJB LocalObject,且需要处理许多不必要的异常情况; EJB部署描述符复杂,且易出错; 基于EJB模型的容器管理持久化太复杂,不利于开发和管理。缺乏一些基本功能,且EJB QL语言功能有限; 因继承性和多态性方面的约束,致使EJB组件与其源对象并不相同; 不能在EJB容器外测试EJB模块,开发测试不便; 查找和调用EJB太复杂,用户必须了解JNDI的每个细节。 5.1.3 EJB 3 的新特性 为此,Java EE 5开始SUN对EJB作为大量的改进,也借鉴了一些流行开源技术。 EJB 3力求减轻开发人员进行底层开发的工作量,也取消或最小化了很多回调方法的实现。新的EJB已将实体Bean和O/R映射模型独立出去,形成Java持久性API,降低了EJB的复杂性,也大大提高了实体Bean的开发效率,使其更加通用、简洁、轻巧。 此外,通过使用元数据注释工具也大大简化了EJB的部署。 归纳起来,EJB 3 的新特性主要有: 元注释的使用大大简化了EJB需要实现的程序类和接口,甚至可以不使用任何署描述符,可直接在源代码中使用元注释完成所有配置。 通过注释、依赖注入和简单查询机制,封装了环境依赖和JNDI访问,使对于环境资源的访问变得简单有效。 简化EJB类型,不再有CMP和BMP实体Bean之分,独立于EJB的Java持久性API简单易用且功能强大。 取消了会话Bean的home接口要求,也不再必须实现EJB组件接口。所需要的业务接口只要求是一个纯Java接口。 引入Java持久性API(JPA),消除了实体Bean需要实现的所有接口,且支持轻量级的域模型,支持继承和多态。 QL语言更加强大。 增强了会话Bean和消息驱动Bean的交互机制;消除了对回调接口进行实现的要求;减少使用验证异常的要求。 5.1.4 EJB 3 的构成 EJB 3的开发通常涉及到以下3种文件: 业务接口:用于定义EJB类需要实现的业务方法的接口。 Bean类:实现业务接口中定义的所有方法以及所有生命周期回调方法。 辅助类:EJB所需要的其它辅助类,如异常和工具类等。 EJB命名规范 假设Bean名为Hello,则业务接口名为Hello,Bean类名为HelloBean,EJB名为HelloBean,EJB JAR包名为HelloBean。 一个Bean类可以有多个业务接口,通常遵循下面的规则: 如果Bean类只实现了一个接口,则这个接口被默认为Bean类的业务接口。 如果没有在Bean类或接口上使用Remote注释,也没有在部署描述符声明这个接口为Remote接口,则默认这个接口为本地接口。 如果Bean类有多个业务接口,则必须明确使用Local或者Remote注释,或使用部署描述符标识业务接口。 同一个业务接口不能既作为Bean的本地接口又作为Bean的远程接口。 以下是一个无状态会话Bean的程序示例: @Stateless public class CalculatorBean implements Calculator { // Bean类 public float add(int a,int b) { return a+b; } public float substract(int a,int b) { return a-b; } } pu
文档评论(0)