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的持续化,安全性,事务管理...

日本CN2独立物理服务器 E3 1230 16G 20M 500元/月 提速啦

提速啦的来历提速啦是 网站 本着“良心 便宜 稳定”的初衷 为小白用户避免被坑 由赣州王成璟网络科技有限公司旗下赣州提速啦网络科技有限公司运营 投资1000万人民币 在美国Cera 香港CTG 香港Cera 国内 杭州 宿迁 浙江 赣州 南昌 大连 辽宁 扬州 等地区建立数据中心 正规持有IDC ISP CDN 云牌照 公司。公司购买产品支持3天内退款 超过3天步退款政策。提速啦的市场定位提速啦主...

NameCheap新注册.COM域名$5.98

随着自媒体和短视频的发展,确实对于传统的PC独立网站影响比较大的。我们可以看到云服务器商家的各种促销折扣活动,我们也看到传统域名商的轮番新注册和转入的促销,到现在这个状态已经不能说这些商家的为用户考虑,而是在不断的抢夺同行的客户。我们看到Namecheap商家新注册域名和转入活动一个接一个。如果我们有需要新注册.COM域名的,只需要5.98美元。优惠码:NEWCOM598。同时有赠送2个月免费域名...

易速互联月付299元,美国独立服务器促销,加州地区,BGP直连线路,10G防御

易速互联怎么样?易速互联是国人老牌主机商家,至今已经成立9年,商家销售虚拟主机、VPS及独立服务器,目前商家针对美国加州萨克拉门托RH数据中心进行促销,线路采用BGP直连线路,自带10G防御,美国加州地区,100M带宽不限流量,月付299元起,有需要美国不限流量独立服务器的朋友可以看看。点击进入:易速互联官方网站美国独立服务器优惠套餐:RH数据中心位于美国加州、配置丰富性价比高、10G DDOS免...

ejb开发为你推荐
快速美白好方法快速美白的好点子!?(不是晒黑的)显卡温度多少正常显卡温度多少算正常?今日热点怎么删除今日热点自动弹出怎么卸载或屏蔽镜像文件是什么什么叫镜像文件,作用是什么?安卓应用平台哪个手机应用平台的软件比较正版,安全?办公协同软件免费的多人协同办公软件哪些,我了解的有钉钉、企业微信,其他的还有么?ios7固件下载ios 7及以上固件请在设备上点“信任”在哪点?雅虎天盾高手进来看看我该怎么办 新装的ie8 内存使用率达到100%了mate8价格华为mate8什么时候会降价云挂机云软件挂机赚钱是骗子
域名网站 php主机租用 VPS之家 域名解析服务器 域名商 asp.net主机 贵州电信宽带测速 2017年黑色星期五 ibrs 777te 好看qq空间 183是联通还是移动 卡巴斯基试用版 服务器干什么用的 重庆双线服务器托管 支付宝扫码领红包 支持外链的相册 无限流量 免费的asp空间 下载速度测试 更多