EJB新手入门:自总结针对软考EJB学习内容

EJB新手入门:自总结针对软考EJB学习内容1、什么是EJB百度百科定义EJB(EnterpriseJavaBeans)是基于分布式事务处理的企业级应用程序的组件。Sun公司发布的文档中对EJB的定义是:EJB是用于开发和部署多层结构的、分布式的、面向对象的Java应用系统的跨平台的构件体系结构。[2]在开发分布式系统时,采用EJB可以使得开发商业应用系统变得容易,应用系统可以在一个支持EJB的环境中开发,开发完之后部署在其它的EJB环境中,随着需求的改变,应用系统可以不加修改地迁移到其它功能更强、更复杂的服务器上。E..

大家好,欢迎来到IT知识分享网。

1、什么是EJB

  1. 百度百科定义

EJB (Enterprise Java Beans) 是基于分布式事务处理的企业级应用程序的组件。Sun公司发布的文档中对EJB的定义是:EJB是用于开发和部署多层结构的、分布式的、面向对象的Java应用系统的跨平台的构件体系结构。 [2] 

在开发分布式系统时, 采用EJB可以使得开发商业应用系统变得容易, 应用系统可以在一个支持EJB的环境中开发, 开发完之后部署在其它的EJB环境中, 随着需求的改变, 应用系统可以不加修改地迁移到其它功能更强、更复杂的服务器上。EJB在系统实现业务逻辑层里面负责表示程序的逻辑和提供访问数据库的接口。

 

  1. 网络上的定义

简单来说就是把已经编写好的程序(即:类)打包放在服务器上执行。凭借java跨平台的优势,用EJB技术部署的分布式系统可以不限于特定的平台。EJB (Enterprise JavaBean)J2EE(javaEE)的一部分,定义了一个用于开发基于组件的企业多重应用程序的标准。其特点包括网络服务中心支持和核心开发工具(SDK) J2EE里,Enterprise Java Beans(EJB)称为Java 企业Bean,是Java的核心代码,分别是会话BeanSession Bean),实体BeanEntity Bean)和消息驱动BeanMessageDriven Bean)。在EJB3.0推出以后,实体Bean被单独分了出来,形成了新的规范JPA

 

  1. 形象描述(可能不太准确,待修改完善)
  • 首先javaEEjava体系最大框架,包含了所有,EJBSpringStrutsEJB容器、web容器(例如TomcatWeb容器的参考实现)等等都是这个大框架中的一部分。实际上现在的JavaEE系统分这么几个层。表现层(StrutsJSF等)+应用层(处理业务,可以是JavaBean也可以是EJB+持久层(JDBCHibernate)。
  • 通常说说EJB = EJB(javabean) + EJB容器。EJB是指运行在EJB容器中的JavaBean。,所有的JavaBean都是在服务器端运行的。
  • 什么是EJB容器:Enterprise java bean 容器。
  • 什么是web容器:比如TomcatWeb容器中无法运行EJB
  • 有了Spring为什么还要用EJB:目前来说除非需要分布式处理,不然基本上不需要考虑EJBSpring能帮你处理好除分布计算之外的一切。

 

2、EJB组件体系结构

  1. 百度百科定义

EJB的架构主要包括以下几方面:

1) Enterprise Java Bean:包含了组件的实现细节, 是实际完成bean功能的地方。EJB容器根据需要调用这个类对bean进行实例化。

2) EJB对象:在服务器端, 一个EJB对象是一个实现了bean的远程接口 (具有网络功能) 的分布式对象, 它在服务器端上包装了bean的实例。EJB对象由容器控制在适当的时机调用所需的服务, 这些服务对客户而言是透明的。

3) Remote接口:遵照EJB规范, 所有的Remote接口都必须来源于一个通用的接口, 包含了EJB对象必须实现的方法。

4) Home接口:开发者必须定义home接口, 容器厂商则提供从home接口中产生home对象实现的方法。

 

EJBJ2EE体系结构中的位置

EJB新手入门:自总结针对软考EJB学习内容

视图层或表现层:提供用户界面;接收用户输入;数据输出。WEB应用的情况,JSP以及SERVLET属于视图层组件。

业务逻辑层:实际的业务逻辑处理。根据视图层传送过来的数据,进行实际的业务逻辑处理(包括数据库的查询,更新等),再把处理后的结果返回给视图层。EJB,以及不使用EJB的情况下担当业务逻辑处理部分的JavaBean等归属于业务逻辑层组件。

数据库层或数据持久化层:多指用于保存业务数据的数据库,也可以是文件等等。

EJB属于J2EE体系结构中的业务逻辑层部分。

EJB的环境构成

EJB新手入门:自总结针对软考EJB学习内容

1EJB组件运行在EJB容器之中,EJB容器是一个EJB引擎,它提供了EJB组件运行的环境,并对EJB组件进行管理。EJB容器一般包含在EJB服务器(或应用服务器)中,EJB服务器可以拥有一到多个EJB容器。比较有名的支持EJB的服务器有Sun OneInterstageWebsphereWeblogicJBossJRun等。

2,调用EJB组件的一方被称为EJB客户端。EJB客户端可以为运行在WEB容器中的JSPSERVLET;或者一般的Java ApplicationApplet;或者Web Service;也可以是别的EJB组件。

3EJB客户端与EJB服务器可处于同一JVM环境中,也可处于不同计算机的不同JVM环境。

EJB的资源配置

当一个EJB组件被开发完成之后,它需要以JAR文件的形式配置到EJB容器中以备其他客户程序 使用;反过来,一个客户程序需要使用某EJB组件,该客户程序需要引用该EJB组件的接口,也就是说,EJBjar文件需要同时配置到EJB容器和使用 EJB组件的客户端环境中。

如图:

EJB新手入门:自总结针对软考EJB学习内容

EJB组件的种类

EJB组件有SessionBean(会话Bean),EntityBean(实体Bean),MDB(消息驱动Bean)三种。

EJB新手入门:自总结针对软考EJB学习内容

SessionBean

主要负责业务逻辑的处理。根据处理时的状态保持与否,SessionBean又被分为:

Stateful SessionBean(有状态SessionBean

Stateless Bean(无状态SessionBean

对象的“状态”是指对象的属性值,也就是对象所携带的数据。Stateful SessionBean能维持会话的状态,就是说能为同一客户端保持上一回被调用时的状态,类似于HttpSession;而Stateless SessionBean则不能维持会话状态,也就是说,对Stateless SessionBean来说,每个方法都是独立的,因为对特定客户端不保持会话状态,所以一般也不在Stateless SessionBean里定义成员变量。

EntityBean

负责数据库的访问。通常由SessionBean调用。EntityBean的一个实例所表示的数据通常代表了关系数据库中特定表的特定的一行数据。EJB3开始,EntityBean部分的功能可以通过JPA来实现。

EntityBean的作用:

1,对数据库的操作:查询,数据的更新,删除等

2,数据库表数据的携带

根据对数据库操作(持久化)的不同,EntityBean分为以下2种类型:

1BMP (Bean-managed persistencebean管理持久化):持久化操作(数据库的访问,数据的创建,更新,删除等)由EntityBean的实现(javax.ejb.EntityBean的实现类)自身完成。

2CMP (Container-managed persistence:容器管理持久化):持久化操作由容器根据deploy时的配置信息(ejb-jar.xml)自动完成。

MDB (message-driven bean:消息驱动bean)

MDB主要用来处理异步消息。客户端调用SessionBeanEntityBean的方法时,会一直处于等待状态,直到被调用的方法处理完毕。但使用 MDB,客户端向容器发送一个JMS消息之后,不必等待MDB处理完毕便可直接返回。JMS被发送给由容器管理的JMS消息队列,容器在适当的时候通知 MDBcallback方法onMessage加以处理。一个MDB需要实现javax.jms.MessageListener接口与 javax.ejb.MessageDrivenBean接口。

EJB组件的构造

构造图:

EJB新手入门:自总结针对软考EJB学习内容

SessionBeanUML-CLASS

EJB新手入门:自总结针对软考EJB学习内容

 

 

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/9879.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信