ejb开发什么是EJB?它是干什么的?和JAVA,JSP有关系吗?他们各有什么特点和用途?

ejb开发  时间:2021-01-13  阅读:()

现在EJB用的多么

要看公司做什么类型的项目了,如果对安全性要求高可能还是用老技术,典型的大型银行项目:struts1+EJB。

很多人会问为什么他们不用新技术,其实这就和用Linux和XP系统一样,很多人喜欢用XP系统而不用Linux系统,对大众用户来说XP操作简单,而对一些专业开发人员来说会用Linux系统因为安全。

什么是EJB程序

Enterprise bean是实现了Enterprise JavaBean (EJB)技术的J2EE组件。

Enterprise bean在EJB容器这个J2EE服务器中的运行环境中运行(参见图1-5)。

EJB容器提供了诸如enterprise bean的事务处理这样的系统级服务,不过这对于应用程序开发者是透明的。

这些服务的存在使得你可以快速地构建和部署enterprise bean,enterprise bean构成了事务型J2EE应用程序的核心。

  Enterprise Bean是什么?   一个enterprise bean就是一个用Java编程语言编写的服务器端的组件,其中包含了应用程序的商业逻辑。

所谓商业逻辑,是指实现应用程序用途的代码。

例如,在一个存货管理的应用程序中,enterprise bean可能会在名为checkInventoryLevel和orderProduct的方法中实现商业逻辑。

客户端通过调用这些方法访问应用程序提供的存货管理服务。

  Enterprise Bean的优点   enterprise bean的使用大大减轻了分布式应用程序开发的工作量。

  首先,因为EJB容器为enterprise bean提供了系统级的服务,bean的开发者可以集中精力解决商业问题。

EJB容器--而不是bean的开发者--负责诸如事务管理和安全论证这样的系统级服务。

  其次,因为bean--而不是客户端--包含了应用程序的商业逻辑,客户端的开发者可以集中精力于客户端的外观。

客户端的开发者不再需要编写执行商业规则或访问数据库的程序。

这样的结果是,客户端是真正意义上的瘦客户端,这样做还有一个好处,就是降低了对客户端的硬件要求。

  第三,因为enterprise bean是可移植的组件,应用程序装配者可以使用已有的bean构建新的应用程序。

这些应用程序可以运行在任何合适的J2EE服务器上。

  什么时候使用Enterprise Bean   如果你的应用程序有以下几个需求之一时,你应该考虑使用enterprise bean:   1、应用程序必须具有可伸缩性。

为了适应不断增加的用户,你可能需要发布适应许多机器的应用程序组件。

应用程序的enterprise bean不仅可以运行在不同的机器上,而且它们的位置对于客户端也是完全透明的。

  2、事务要求确保数据完整性。

Enterprise beans支持事务这种管理对共享对象的并行访问的机制。

  3、应用程序可能会有多种客户端。

只需要几行代码,远程客户端就可以很方便地定位enterprise bean。

这些客户端可以只有几种,也可以有很多种。

  Enterprise Bean的类型   表3-1概括了enterprise bean的三种不同的类型。

在下面几节我们将详细讨论每一个类型。

  表3-1 Enterprise Bean的类型   Enterprise Bean类型:用途   Session:为客户端执行一个任务   Entity:表现一个持久存储的商业实体对象   Message-Driven:充当Java消息服务API中监听者的角色,以处理异步的消息   Session Bean是什么?   一个session bean表现了在J2EE服务器中一个单一的客户端。

客户端调用session bean的方法以访问部署在服务器上的应用程序。

session bean为它的客户端执行工作,通过在服务器中执行商业任务简化了客户端工作的复杂性。

  正如它的名字所暗示的那样,一个session bean和一个交互式的session很类似。

一个session bean不是共享的--它可能仅仅只有一个客户端,同样的交互式的session可能也只有一个用户。

和一个交互式的session一样,一个session bean也不是持久稳固的。

(也就是说,它的数据没有被存储到数据库中。

) 当客户端终止时,它的session bean也会终止并且不再与客户端关联。

  状态管理模式   有两种类型的session bean:stateful和stateless。

  Stateful Session Bean   一个对象的状态由它的实例变量的值组成。

在一个stateful session bean中,实例变量表现了一个唯一的client-bean session的状态。

因为在客户端和它的bean之间存在交互(“会话”),这个状态常常被称之为conversational state(会话状态)。

  状态会在client-bean session持续期间被保存。

如果客户端删除了这个bean或客户端终止了,这个session会结束,它的状态也会消失。

这种状态的短暂存在并不是问题,因为当在客户端和bean之间的会话结束时,保存状态也就不再有必要了。

  Stateless Session Bean   一个stateless session bean不为一个具体的客户端维持一个会话状态。

当一个客户端调用一个stateless bean的方法,bean的实例变量可能会包含一个状态,但这个状态仅仅存在于调用的过程之中。

当方法结束时,这个状态将不再保留。

除了在方法调用的过程中以外,一个stateless bean的所有实例是完全等价的,这就使得EJB容器可以将实例分配给任何客户端。

  因为stateless session bean可以支持许多客户端,它们可以为应用程序提供更好的可伸缩性。

典型的情况是,对于相同数量的客户端,应用程序所需要的stateless session bean会比stateful session bean少得多。

  有时,EJB容器可能会将stateful session bean写入到次级存储器中。

然而,stateless session bean从不需要写入到次级存储器中。

因此,stateless bean与stateful bean相比可以提供更好的性能。

  什么时候使用Session Bean   一般地说,如果有以下情况,你应该使用session bean:   1、在任何一个给定的时间,只有一个客户端访问bean的实例。

  2、bean的状态不是持久稳固的,只存在一个很短的时间(也许是几个小时)。

  如果满足以下条件之一,你可以选用stateful session bean:   1、bean的状态表现了bean和一个指定客户端的交互。

  2、bean需要保存有关客户端调用方法的信息。

  3、bean作为客户端和其它应用程序组件的中介,并为客户端提供一个简单的视图。

  4、bean在后台管理着几个enterprise bean的工作流。

  为了提高性能,如果有以下特性之一,你可以选择使用stateless session bean:   1、bean的状态中不存在一个指定客户端的数据。

  2、在一个单独的方法调用中,bean执行为所有客

什么是EJB?什么是设计模式?

EJB是sun的服务器端组件模型,最大的用处是部署分布式应用程序,类似微软的技术。

凭借java跨平台的优势,用EJB技术部署的分布式系统可以不限于特定的平台。

设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。

使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。

毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。

GoF的“设计模式”是第一次将设计模式提升到理论高度,并将之规范化,本书提出了23种基本设计模式,自此,在可复用面向对象软件的发展过程中,新的大量的设计模式不断出现。

设计模式和框架 现在,可复用面向对象软件系统现在一般划分为三大类:应用程序 工具箱和框架(Framework),我们平时开发的具体软件都是应用程序;Java的API属于工具箱;而框架是构成一类特定软件可复用设计的一组相互协作的类。

EJB(Enterprise JavaBeans)是Java应用于企业计算的框架. 框架通常定义了应用体系的整体结构 类和对象的关系等等设计参数,以便于具体应用实现者能集中精力于应用本身的特定细节。

框架主要记录软件应用中共同的设计决策,框架强调设计复用,因此框架设计中必然要使用设计模式. 另外,设计模式有助于对框架结构的理解,成熟的框架通常使用了多种设计模式,如果你熟悉这些设计模式,毫无疑问,你将迅速掌握框架的结构,我们一般开发者如果突然接触EJB J2EE等框架,会觉得特别难学,难掌握,那么转而先掌握设计模式,无疑是给了你剖析EJB或J2EE系统的一把利器

简述EJB中6种角色的名称及其作用

EJB 1.EJB体系结构: 包括客户端、服务器端。

客户端:包含了调用EJB组件特定业务所需的EJB接口(包括本地和远程EJB接口);服务器端处理对象的句柄。

服务器端:包含了EJB组件实现的实例;用来在客户端和EJB组件之间进行映射的容器代码。

EJB客户应用程序使用JNDI来查找对本地接口的实例引用,通过EJB接口来调用和引用EJB组件的全部方法和属性。

2.开发EJB程序的步骤: 开发主接口、开发组件接口、开发Bean实现类、编写部署文件。

开发主接口:bean的主接口程序,命名为Home,继承EJBHome,负责bean的生命周期(生成、删除、查找bean)。

只需提供主接口,类方法的实现由容器完成。

其方法有create,remove,search等。

开发组件接口:命名为,继承EJBObject,当远程用户调用主接口方法create时,得到一个组件的远程引用,为这个bean的所有方法提供一个接口类,类和主接口的实现是由容器在部署时自动生成。

开发Bean的实现类:命名为EJB,实现SessionBean接口。

实现ejbCreate、ejbRemove等。

编写部署文件:完整的bean由java类和描述其特性的ejb-jar.xml文件组成,将其打包,放在jboss中的deploy文件夹中。

3.开发和部署测试程序: 开发一个Servlet测试程序,将测试程序放在tomcat的webapps中。

4.会话Bean: 分为有状态会话Bean和无状态会话Bean。

EJB容器通过ejb-jar.xml来判断是否为一个SessionBean提供保存状态的服务。

所有SessionBean的寿命周期由容器控制,Bean的客户不拥有Bean的直接引用。

部署一个EJB时,容器为这个Bean分配几个实例到Component Pooling,当客户请求一个Bean时,J2EE服务器将一个预先实例化的Bean分配出去,在客户的一次会话中,可以只引用一次Bean,就可以执行这个Bean的多个方法。

如果另一个客户请求同一个Bean,容器检查池中空闲的Bean(不在方法和事务中,如果一个客户长时间引用一个Bean,单执行一个方法后需等待一段事件执行另一个方法,则这段时间也是空闲的),如果全部的实例都已用完,则会自动生成一个新的实例放在池中,并分配给请求者。

当负载减少时,池会自动管理Bean实例的数量,将多余的实例从池中释放。

5.有状态会话Bean: 在客户访问之间保存数据,在客户引用期间维护Bean中的所有实例数据的状态值。

有四种状态:不存在、方法现成、事务中方法现成、钝化。

不存在:有状态SessionBean的初始化状态为不存在,当客户引用一个Bean时,按照下图中初始化一个Bean。

方法现成:如果客户调用remove()方法回到不存在状态,并触发Bean的ejbRemove()方法。

如果客户长时间不调用Bean或服务器准备释放一些内存资源,则容器调用ejbPassivate()将这些Bean从组件池中钝化,此时释放分配的资源。

当请求被钝化的Bean时,容器调用ejbActivate()激活Bean,Bean转到方法现成状态时分配Bean所需的资源。

Bean本身可以管理事务(BMT Bean-Managed Transactions),也可由容器管理事务(CMT Container-Managed Transactions)。

对于CMT,容器在方法开始时打开事务,在方法结束时实现事务。

通过afterBegin()、beforeCompletion()、afterCompletion()来获取事务的各个状态,afterCompletion(true)表示事务完成,afterCompletion(false)表示事务被撤消。

setSessionContext()将对象的语境放到对象变量中,容器在结束会话Bean或自动超时死亡之前自动调用ejbRemove()方法,此方法中可以用来释放资源, 6.无状态会话Bean: 不会在客户访问之间保存数据,不能申明实例变量,方法只能操作传来的参数。

如果数据是数据的瞬像,则用无状态会话Bean。

弊端:本该存储在服务器端的数据被保存在客户中,每次调用这些数据要以参数的方式传递给Bean。

如果数据状态非常敏感,则不要使用无状态会话Bean。

有两种状态:存在、不存在。

只对客户提供业务逻辑,服务器端不保存客户端的任何数据状态,这些状态被保存在客户端。

当客户端不存在一个无状态Session Bean时,通过远程主接口的create()方法创建一个Bean,newInstance()负责实例化Bean,ejb容器调用bean类的setSessionContext()方法把运行环境对象SessionContext传递给Bean,然后调用ejbCreate()方法进行初始化和资源分配。

在Java中什么是EJB

EJB (Enterprise JavaBean)是J2EE的一部分,定义了一个用于开发基于组件的企业多重应用程序的标准。

其特点包括网络服务支持和核心开发工具(SDK)。

  在J2EE里,Enterprise Java Beans(EJB)称为Java 企业Bean,是Java的核心代码,分别是会话Bean(Session Bean),实体Bean(Entity Bean)和消息驱动Bean(MessageDriven Bean)。

  1.Session Bean用于实现业务逻辑,它可以是有状态的,也可以是无状态的。

每当客户端请求时,容器就会选择一个Session Bean来为客户端服务。

Session Bean可以直接访问数据库,但更多时候,它会通过Entity Bean实现数据访问。

  2.Entity Bean是域模型对象,用于实现O/R映射,负责将数据库中的表记录映射为内存中的Entity对象,事实上,创建一个Entity Bean对象相当于新建一条记录,删除一个Entity Bean会同时从数据库中删除对应记录,修改一个Entity Bean时,容器会自动将Entity Bean的状态和数据库同步。

  3.MessageDriven Bean是EJB2.0中引入的新的企业Bean,它基于JMS消息,只能接收客户端发送的JMS消息然后处理。

MDB实际上是一个异步的无状态Session Bean,客户端调用MDB后无需等待,立刻返回,MDB将异步处理客户请求。

这适合于需要异步处理请求的场合,比如订单处理,这样就能避免客户端长时间的等待一个方法调用直到返回结果。

  EJB实际上是SUN的J2EE中的一套规范,并且规定了一系列的API用来实现把EJB概念转换成EJB产品.EJB是BEANS,BEANS是什么概念,那就是得有一个容纳她,让她可劲造腾的地方,就是得有容器.EJB必须生存在EJB容器中.这个容器可是功能强大之极!她首先要包装你BEAN,EJB的客户程序实际上从来就不和你编写的EJB直接打交道,他们之间是通过HOME/REMOTE接口来发生关系的.它负责你的BEAN的所有的吃喝拉萨睡,比如BEAN的持续化,安全性,事务管理...

什么是EJB?它是干什么的?和JAVA,JSP有关系吗?他们各有什么特点和用途?

EJB实际上是SUN的J2EE中的一套规范,并且规定了一系列的API用来实现把EJB概念转换成EJB产品.EJB是BEANS,BEANS是什么概念,那就是得有一个容纳她,让她可劲造腾的地方,就是得有容器.EJB必须生存在EJB容器中.这个容器可是功能强大之极!她首先要包装你BEAN,EJB的客户程序实际上从来就不和你编写的EJB直接打交道,他们之间是通过HOME/REMOTE接口来发生关系的.它负责你的BEAN的所有的吃喝拉萨睡,比如BEAN的持续化,安全性,事务管理...

ftlcloud(超云)9元/月,1G内存/1核/20g硬盘/10M带宽不限/10G防御,美国云服务器

ftlcloud怎么样?ftlcloud(超云)目前正在搞暑假促销,美国圣何塞数据中心的云服务器低至9元/月,系统盘与数据盘分离,支持Windows和Linux,免费防御CC攻击,自带10Gbps的DDoS防御。FTL-超云服务器的主要特色:稳定、安全、弹性、高性能的云端计算服务,快速部署,并且可根据业务需要扩展计算能力,按需付费,节约成本,提高资源的有效利用率。点击进入:ftlcloud官方网站...

DiyVM:2G内存/50G硬盘/元起线路香港vps带宽CN2线路,香港VPS五折月付50元起

DiyVM是一家低调国人VPS主机商,成立于2009年,提供的产品包括VPS主机和独立服务器租用等,数据中心包括香港沙田、美国洛杉矶、日本大阪等,VPS主机基于XEN架构,均为国内直连线路,主机支持异地备份与自定义镜像,可提供内网IP。最近,商家对香港机房VPS提供5折优惠码,最低2GB内存起优惠后仅需50元/月。下面就以香港机房为例,分享几款VPS主机配置信息。CPU:2cores内存:2GB硬...

SugarHosts糖果主机商更换域名

昨天,遇到一个网友客户告知他的网站无法访问需要帮他检查到底是什么问题。这个同学的网站是我帮他搭建的,于是我先PING看到他的网站是不通的,开始以为是服务器是不是出现故障导致无法打开的。检查到他的服务器是有放在SugarHosts糖果主机商中,于是我登录他的糖果主机后台看到服务器是正常运行的。但是,我看到面板中的IP地址居然是和他网站解析的IP地址不同。看来官方是有更换域名。于是我就问 客服到底是什...

ejb开发为你推荐
行业关键词为什么有些行业关键词竟价出价很低有些行业很高中国电信互联星空电信的互联星空服务是什么?中国论坛大全甘肃论坛都有哪些?flash导航条如何添加FLASH导航条网站联盟百度网盟是什么,怎么加入显卡温度多少正常显卡温度多少正常今日热点怎么删除今日热点自动弹出怎么卸载或屏蔽网易公开课怎么下载怎么下载网易公开课里的视频 .......qq怎么发邮件怎么发送QQ邮件ejb开发什么是EJB?它是干什么的?和JAVA,JSP有关系吗?他们各有什么特点和用途?
虚拟主机代理 汉邦高科域名注册 vps服务器 荷兰vps budgetvm 免备案cdn 国外bt 特价空间 42u标准机柜尺寸 服务器怎么绑定域名 panel1 湖南服务器托管 tna官网 smtp虚拟服务器 阵亡将士纪念日 windowsserver2008r2 免费的加速器 so域名 linuxvi命令 瓦工工具 更多