javabean和ejb之间的区别

首先,我要说的是,请回答者看清楚我的问题再做有针对性的回答,还有一堆复制却没有任何主见总结那些的答案,也请慎重写上.我开发的是J2EE的轻量级开发,所谓轻量级我理解的就是... 首先,我要说的是,请回答者看清楚我的问题再做有针对性的回答,还有一堆复制却没有任何主见总结那些的答案,也请慎重写上.

我开发的是J2EE的轻量级开发,所谓轻量级我理解的就是,利用开源项目的框架去将MVC详细的分层,和业务上的逻辑处理,并且回避EJB的使用.J2EE的标准版中EJB应该属于核心内容,但是轻量级的开发已经回避了此问题.不知理解对否..

那么,ejb其实也叫enterprice java bean,企业级的javabean..此企业级javabean和普通javabean有何区别呢?搜索来的资料说,企业级的javabean是运行在WEB容器中(weblogic肯定是支持ejb,我一般开发时候用的是tomcat,是不是tomcat本身就不支持ejb连接池等技术?这个回答下),ejb将会在WEB容器中进行逻辑方面的业务处理,而javabean是运行在客户端属于用户可以看见的对象.这种描述是否准确?不过还是对此概念有些混淆.到底javabean中,java为一词,那bean到底又该如何准确理解呢?一种WEB系统中可操作的事物(对象)?
例子为网络购物,虚拟购物车属于javabean,而定单处理属于ejb. 这里,虽然购物车的属性是用户可以看见的,但是实际上更新购物车的属性,比如有什么商品在其中,目前总价格统计,还是要放到服务器那处理的吧...EJB的标准开发我是学过的,但是根本没去听,而我现在做的都是轻量级开发(而且数据对象都是持久化的,好象还没做过临时对象那样的代码),如果是轻量级开发,struts或spring等,那么我可能就直接将购物车写成一个JAVA对象,放在一个beans的包内,然后在action层中将购物车的bean信息给直接更新掉再发送回去.那么按此做法,实际上此javabean的处理依然还是在服务器上进行运算再过来的啊,用户不过是看的到此对象的一些显性结果而已.当然,我推想效率更高的方法,或许是直接利用JS,将要改变的对象从服务器查询过来返回,再通过JS方法进行此对象的改变??那么,在实际开发中,分别在EJB和STRUTS开发中,都是如何来实现购物车这样虚拟临时对象的呢?(简单的把使用技术和思想方法说出来就OK了)其实是我很难理解,javabean如何单独运行在用户机器上,虽然我知道这样有好处,降低服务器负担,不过确实也没做过这个虚拟临时对象..

最后,我总结一下开发的轻量级的开发项目,一般就是SERVLET(包括ACTION)这种C(控制)是主要的业务逻辑控制,而javabean更象是一种对象的类表现,除了一些SET,GET属性方法也不写其他多余东西再里面,然后通过一些DAO的封装基本操作,最好再加一个SERVICE服务层,然后就完成目标了,实际上javabean我觉得就是那几个描述实体的类吧?javabean的概念和作用在开发已经显得有些微不足道了.至于EJB的概念,我不清楚,但我知道我做过的项目中确实应该是没有所谓EJB的东西,所有的逻辑业务都通过ACTION里各种处理方法给实现了再返回就OK了..

问的也比较乱,反正真正的专家一句话就OK啦..希望能有高手给予一定的经验,这些东西确实在开发里不知道也能做代码出来,不过就这样糊涂搞下去..前景也..反正高手来帮助下吧
wlmouse,请问一下,JAVABEAN是领域模型的具体化类,那么对于一个购物车的JAVABEAN(这个临时出现的对象应该也属于JAVABEAN吧?),那么属性里字段有一个MAP之类的集合(代表物品列表对象),一个总价格属性,那么是不是这只是一个失血模型?我还可以再这个JAVABEAN里加上方法addobject(objece **),delete(object **)...通过这两个方法是否就是所谓的业务?然后添加好了就是一个完整化的规范JAVABEAN了?是这样吗?在方法具体里实现,是否就是从request中获取现有的bean属性,然后再将新的object进行队列操作,再改变prise的值,得到新的BEAN对象??
这个混乱的问题,BEAN中的业务到底是什么呢?流程中的一系列动作?那么对于登陆用户的流程是怎样呢?写出了用户的用户名,密码(一般就不再处理中保存进去了),权限等级等,然后业务是什么呢??登陆和注销还有新建用户这些应该不是吧..我能想到的可能有权限等级变更?有一些更形象的方式描述一下如何在JAVABEAN内很好的将业务给分离出来的经验吗?

还有不少相关问题想问,不过还是最好新开一个问题好了,感谢你的回答...希望能够再次回答
展开
 我来答
wlmouse
推荐于2017-11-24 · TA获得超过648个赞
知道小有建树答主
回答量:839
采纳率:50%
帮助的人:404万
展开全部
首先,EJB是指运行在EJB容器中的JavaBean。Tomcat是Web容器的参考实现。一个完整的JavaEE服务器应该包括Web容器和EJB容器。
其次,Web容器中无法运行EJB,同时所有的JavaBean都是在服务器端运行的。如果有在客户端的话,就变成C/S结构了。
目前来说除非需要分布式处理,不然基本上不需要考虑EJB。Spring能帮你处理好除分布计算之外的一切。
用JavaScript来进行服务器调用的话,属于Ajax的范围了。
至于购物车。一般来说有几种方法,一种是EJB中的有状态SessionBean。一种是使用HttpSession保存。还有就是自己建设一个对象池来处理。

JavaBean是领域模型的具体化类,保存了信息和业务。只有set、get方法的JavaBean是失血模型。现在来说一般多少不太欢迎这种东西。把本属于领域对象的业务逻辑都丢掉了。
实际上现在的JavaEE系统分这么几个层。
表现层(Struts、JSF等)+应用层(处理业务,可以是JavaBean也可以是EJB)+持久层(JDBC、Hibernate)。
不要在Struts的Action类中写业务代码,那是反模式。不然日后需要修改的时候很麻烦的。Action中只有流程指向和对应用层的调用。

领域模型分实体、值对象和服务三部分。一般实体里写业务代码、值对象显示、服务提供相对独立的业务。失血模型指一个对象中除了get和set方法外没有任何方法的类。现在不太推荐。addobject(objece **),delete(object **)...之类的方法就是业务。这些业务封进去后,失血模型就变成了缺血模型。充血模型把持久化服务等也包了,所以也不是很号。缺血比较推荐。
登录等流程其实是服务。推荐你去看看DDD设计的书也就是《领域驱动设计》。
635512117
2007-09-04
知道答主
回答量:14
采纳率:0%
帮助的人:0
展开全部
您很快就会和作为浏览器可视部分的 JavaBean 交互,然后,那些 JavaBean 将与服务器上的 EJB 接口。这种能力也可以扩展到因特网和内部网。

JavaBean 和 Server Bean(通常称为 Enterprise JavaBean (EJB))有一些基本相同之处。它们都是用一组特性创建,以执行其特定任务的对象或组件。它们还有从当前所驻留服务器上的容器获得其它特性的能力。这使得 bean 的行为根据特定任务和所在环境的不同而有所不同。

这开辟了巨大商机。因为 JavaBean 是与平台无关的,所以对于将来的解决方案,供应商可以轻易向不同用户推出其客户机方的 JavaBean,而不必创建或维护不同的版本。

这些 JavaBean 可以与执行商业功能(例如订购、信用卡处理、电子汇款、存货分配、运输等)的 EJB 配合使用。这里有巨大潜力,而这正是组件代理(WebSphereApplication Server 企业版)设计提供的那种潜力。

JavaBean 是一种组件,它在内部有接口或有与其相关的属性,以便不同人在不同时间开发的 bean 可以询问和集成。可以构建一个 bean,而在以后构造时将其与其它 bean 绑定。

这种过程提供了先构建,然后重复使用的方法,这就是组件的概念。可以将这种单一应用程序部署成独立程序、ActiveX组件或在浏览器中。

JavaBean 因其外部接口(即属性接口)而与纯对象不同。这种接口允许工具读取组件要执行的功能,将其与其它 bean 挂钩,以及将其插入其它环境。

JavaBean 设计成对单一进程而言是本地的,它们在运行时通常可视。这种可视组件可能是按钮、列表框、图形或图表 - 但这不是必需的。

可执行组件

Server Bean 或 EJB 是部署在服务器上的可执行组件或商业对象。有一个协议允许对其进行远程访问或在特定服务器上安装或部署它们。有一系列机制允许它们将服务安全性、事务行为、并发性(由多个客户机同时访问的能力)和持久性(其状态可以保存多久)的主要方面授权给 EJB 服务器上其所在的容器。

当安装在容器中时,它们获得各自的行为,该行为提供不同质量的服务,因此,选择正确的 EJB 服务器至关重要。这正是 IBM WebSphere 企业版的优势所在。

EJB 是设计成运行在服务器上,并由客户机调用的非可视远程对象。可通过多个非可视 JavaBean 构建 EJB。它们有一个部署描述符,其目的与 JavaBean 属性相同:它是以后可由工具读取的 bean 的描述。EJB 还独立于平台,一旦编写好,还可以在任何支持 Java 的平台(包括客户机和服务器)上使用。

因为 EJB 由诸如 IBM VisualAge for Java 这样的工具集生成,所以,它是基于服务器的对象,并用于远程调用。它们安装在 EJB 服务器上,并象调用其它 CORBA远程对象那样获得进行调用的远程接口。

ActiveX 对象

可以将 JavaBean 部署成 ActiveX 对象,虽然 EJB 的代理也可以这样做,但是,因为 ActiveX 运行在桌面上,所以,EJB 本身不能成为 ActiveX 对象。要在与平台相关的、仅 Windows 平台上做到这一点,开发人员可以将 JavaBean 变换成 ActiveX 组件。

好处

EJB 的主要好处在于:构建 bean 时,bean 开发人员可以规定需要什么类型的行为,而不必规定如何去做。开发分为两部分:程序员开发bean,然后验证:它可与构建工具一起工作,并包括标识所需服务质量行为种类的部署描述符。
您现在可能已在使用 JavaBean,但还不了解它。如果有支持 Java 的浏览器,那么,在桌面上使用 JavaBean 就没有限制。使用的 Web 页面可以将 bean 作为小应用程序的一部分。

您很快就会和作为浏览器可视部分的 JavaBean 交互,然后,那些 JavaBean 将与服务器上的 EJB 接口。这种能力也可以扩展到因特网和内部网。

JavaBean 和 Server Bean(通常称为 Enterprise JavaBean (EJB))有一些基本相同之处。它们都是用一组特性创建,以执行其特定任务的对象或组件。它们还有从当前所驻留服务器上的容器获得其它特性的能力。这使得 bean 的行为根据特定任务和所在环境的不同而有所不同。

这开辟了巨大商机。因为 JavaBean 是与平台无关的,所以对于将来的解决方案,供应商可以轻易向不同用户推出其客户机方的 JavaBean,而不必创建或维护不同的版本。

这些 JavaBean 可以与执行商业功能(例如订购、信用卡处理、电子汇款、存货分配、运输等)的 EJB 配合使用。这里有巨大潜力,而这正是组件代理(WebSphereApplication Server 企业版)设计提供的那种潜力。

JavaBean 是一种组件,它在内部有接口或有与其相关的属性,以便不同人在不同时间开发的 bean 可以询问和集成。可以构建一个 bean,而在以后构造时将其与其它 bean 绑定。

这种过程提供了先构建,然后重复使用的方法,这就是组件的概念。可以将这种单一应用程序部署成独立程序、ActiveX组件或在浏览器中。

JavaBean 因其外部接口(即属性接口)而与纯对象不同。这种接口允许工具读取组件要执行的功能,将其与其它 bean 挂钩,以及将其插入其它环境。

JavaBean 设计成对单一进程而言是本地的,它们在运行时通常可视。这种可视组件可能是按钮、列表框、图形或图表 - 但这不是必需的。

可执行组件

Server Bean 或 EJB 是部署在服务器上的可执行组件或商业对象。有一个协议允许对其进行远程访问或在特定服务器上安装或部署它们。有一系列机制允许它们将服务安全性、事务行为、并发性(由多个客户机同时访问的能力)和持久性(其状态可以保存多久)的主要方面授权给 EJB 服务器上其所在的容器。

当安装在容器中时,它们获得各自的行为,该行为提供不同质量的服务,因此,选择正确的 EJB 服务器至关重要。这正是 IBM WebSphere 企业版的优势所在。

EJB 是设计成运行在服务器上,并由客户机调用的非可视远程对象。可通过多个非可视 JavaBean 构建 EJB。它们有一个部署描述符,其目的与 JavaBean 属性相同:它是以后可由工具读取的 bean 的描述。EJB 还独立于平台,一旦编写好,还可以在任何支持 Java 的平台(包括客户机和服务器)上使用。

因为 EJB 由诸如 IBM VisualAge for Java 这样的工具集生成,所以,它是基于服务器的对象,并用于远程调用。它们安装在 EJB 服务器上,并象调用其它 CORBA远程对象那样获得进行调用的远程接口。

ActiveX 对象

可以将 JavaBean 部署成 ActiveX 对象,虽然 EJB 的代理也可以这样做,但是,因为 ActiveX 运行在桌面上,所以,EJB 本身不能成为 ActiveX 对象。要在与平台相关的、仅 Windows 平台上做到这一点,开发人员可以将 JavaBean 变换成 ActiveX 组件。

好处

EJB 的主要好处在于:构建 bean 时,bean 开发人员可以规定需要什么类型的行为,而不必规定如何去做。开发分为两部分:程序员开发bean,然后验证:它可与构建工具一起工作,并包括标识所需服务质量行为种类的部署描述符。

参考资料: http://www.javaresearch.org/article/43223.htm

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
917761
2007-09-02
知道答主
回答量:41
采纳率:0%
帮助的人:20.6万
展开全部
需要什么答案?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式