Java bean is just a set of conventions. EJB is a standard for J2EE business components.
Specifically a Java bean:
- has a public default constructor;
- readable propertiy methods prepended with "get";
- writable propertty methods prepended with "set"; and
- is Serializable.
For example, a Java bean with a property of "margin" would minimally look like this:
public class MyBean implements Serializable {
private int margin;
public MyBean() { }
public int getMargin() { return margin; }
public void setMargin(int margin) { this.margin = margin; }
}
EJB, despite the name, is almost completely unrelated.
JavaBeans:-
---------
Basically used to CUSTOMIZE EXISTING OBJECTS. i.e. You can
create USER OBJECTS, which are based on existing objects.
For
Example: A default button operates as a Single-State Switch. i.e. when
you press a button on a web page, it doesn't remain pressed. Infact, it
immediately bounces back to its OFF state like a Door-Bell.
Now,
let's say, you need a button, which should have 2 stable states, like
the typical Electrical Light Switch. So, in this case, what you can do
is, take an existing button (having 1 stable state) and CUSTOMIZE it so
that it has 2 stable states.
This is possible using JavaBeans.
Enterprise Java Beans (EJB):-
---------------------------
EJB is a completely different concept than the one mentioned
above. It is NOT used to customize existing objects. Instead
they are basically used to STANDARDIZE the way, in which
business logic is written.
For
Example: We can write our business logic as well as the GUI logic,
inside Servlets/Applets/StandAlone applications itself. But this
way,there will be no clear distinction between the Code that is
responsible for the GUI and the actual Business logic code, because
everything is written inside the same class file.
So, to
COMPONENTIZE we write business logic in seperate class files than the
GUI logic, thereby making a clear distinction between the
reponsibilities
有一些基本相同之处。它们都是用一l特性创建,以执行其特定d的对象或lg。它们还有从当前所ȝ服务器上的容器获得其它特性的能力。这使得 bean 的行为根据特定Q务和所在环境的不同而有所不同?
不同的是Q?
EJB 是设计成q行在服务器上,q由客户用的非可视远E对象。可通过多个非可? JavaBean 构徏
EJB。它们有一个部|描q符Q其目的? JavaBean 属性相同:它是以后可由工具d? bean 的描q。EJB
q独立于q_Q一旦编写好Q还可以在Q何支? Java 的^収ͼ包括客户机和服务器)上用?
EJB是一U非可视化的构gQ完全位于服务器端,规范说明详细说明了EJB容器需要满的需求以及如何和EJB构g怺协作。EJB可以和远E的客户端程
序通讯Qƈ提供一定的功能Q根据规范说明,EJB是clientQServerpȝ的一部分Q如果不和客LE序交互QEJB一般不执行具体的功
能,EJB和JavaBean的一个重要区别是EJB必须在网l计环境下使用才有意义?
EJB的重Ҏl出服务框架模型Q以保证Java构g可以q行可移植性的部vQ因此,在EJB规格说明中,q没有提CӞ因ؓ典型的EJB构g不发
送和接收事gQEJB规范说明中也没有提到属性。和一般的JavaBean一PEJB是高度可定制的,对EJBq行定制不需要存取源代码Q但对EJB?
以进行定制不是在开发阶D,而是在部|阶D는部v描述W进行定制?
需要说明的是,JavaBean不仅可用于客L应用E序的开发,也可以用于服务器端应用程序的开发,但和EJB的区别是Q如果用JavaBean?
建服务器端应用程序,q必d时实现服务框Ӟ在多层结构分布式应用pȝ中,服务框架的实现是非常J琐的,对于EJB来说Q服务框架已l提供,因此大大
化了pȝ的开发过E?/p>
我了省时_我给你一份文档吧Q是专门介绍二者区别的?
java bean ? ejb的区?
您现在可能已在? JavaBeanQ但q不了解它。如果有支持 Java 的浏览器Q那么,在桌面上使用 JavaBean
没有限制。用的 Web 面可以? bean 作ؓ应用程序的一部分。您很快׃和作为浏览器可视部分?
JavaBean 交互Q然后,那些 JavaBean 与服务器上? EJB 接口。这U能力也可以扩展到因特网和内部网?
JavaBean ? Server BeanQ通常UCؓ Enterprise
JavaBean
(EJB)Q有一些基本相同之处。它们都是用一l特性创建,以执行其特定d的对象或lg。它们还有从当前所ȝ服务器上的容器获得其它特性的能力。这?
? bean 的行为根据特定Q务和所在环境的不同而有所不同?
q开辟了巨大商机。因?
JavaBean 是与q_无关的,所以对于将来的解决ҎQ供应商可以L向不同用h出其客户机方?
JavaBeanQ而不必创建或l护不同的版本。这? JavaBean
可以与执行商业功能(例如订购、信用卡处理、电子汇ƾ、存货分配、运输等Q的 EJB
配合使用。这里有巨大潜力Q而这正是lg代理QWebSphere Application Server 企业版)设计提供的那U潜力?
JavaBean 是一U组Ӟ它在内部有接口或有与其相关的属性,以便不同人在不同旉开发的
bean 可以询问和集成。可以构Z? beanQ而在以后构造时其与其? bean
l定。这U过E提供了先构建,然后重复使用的方法,q就是组件的概念。可以将q种单一应用E序部v成独立程序、ActiveX lg或在览器中?
JavaBean
因其外部接口Q即属性接口)而与U对象不同。这U接口允许工兯取组件要执行的功能,其与其? bean
挂钩Q以及将其插入其它环境。JavaBean
设计成对单一q程而言是本地的Q它们在q行旉常可视。这U可视组件可能是按钮、列表框、图形或图表 - 但这不是必需的?
可执行组?
Server Bean ? EJB
是部|在服务器上的可执行lg或商业对象。有一个协议允许对其进行远E访问或在特定服务器上安装或部v它们。有一pd机制允许它们服务安全性、事务行
为、ƈ发性(由多个客h同时讉K的能力)和持久性(其状态可以保存多久)的主要方面授权给 EJB
服务器上其所在的容器。当安装在容器中Ӟ它们获得各自的行为,该行为提供不同质量的服务Q因此,选择正确? EJB 服务器至关重要。这正是
IBM WebSphere 企业版的优势所在?
EJB
是设计成q行在服务器上,q由客户用的非可视远E对象。可通过多个非可? JavaBean 构徏
EJB。它们有一个部|描q符Q其目的? JavaBean 属性相同:它是以后可由工具d? bean 的描q。EJB
q独立于q_Q一旦编写好Q还可以在Q何支? Java 的^収ͼ包括客户机和服务器)上用?
因ؓ EJB p? IBM VisualAge for Java
q样的工具集生成Q所以,它是Z服务器的对象Qƈ用于q程调用。它们安装在 EJB 服务器上Qƈ象调用其? CORBA
q程对象那样获得q行调用的远E接口?
ActiveX 对象
可以?
JavaBean 部v? ActiveX 对象Q虽? EJB 的代理也可以q样做,但是Q因? ActiveX
q行在桌面上Q所以,EJB 本n不能成ؓ ActiveX 对象。要在与q_相关的、仅 Windows
q_上做到这一点,开发h员可以将 JavaBean 变换? ActiveX lg?
好处
EJB 的主要好处在于:构徏 bean Ӟbean
开发h员可以规定需要什么类型的行ؓQ而不必规定如何去做。开发分Z部分Q程序员开?
beanQ然后验证:它可与构建工具一起工作,q包括标识所需服务质量行ؓU类的部|描q符。下一步,另一个程序员可以采用q个
beanQƈ使用d EJB 部v描述W的部v工具Q然后将? bean 安装? Enterprise Java
Server 上的容器中。在W二步中Q部|工具采取一些操? -
q可能意味着生成如状态保存代码,攑օ事务挂钩Q或执行安全性检查这L代码。所有这些操作由部v工具生成Qbean
开发h员和部v人员可以是不同的人?
可以通过使用部v工具Q将M独立于^台的 JavaBean 改写成具有可靠服务质量、特定于q_? EJBQ以满现有商业pȝ和应用程序的特定需求。这是 EJB 服务器对集成pȝ、网l和体系l构如此重要的原因所在?
EJB ? IBM WebSphere 企业?
? IBM WebSphere 企业版中使用Ӟ可以? EJB
配置成被理的商业对象。接受它们授权服务的容器是其安装到的容器。将 EJB 的持久性部分映在数据或状态对象中。EJB 服务器ؓ
EJB 提供不同的服务质量,选择正确? EJB
服务器可能对满完整的商业需求至关重要?#8220;lg代理”功能极其健壮Q该功能提供如负载均衡和支持服务器组中多台机器的高功能。它q有大大出
Enterprise Java Server (EJS) 规范所倡导的系l管理功能。因此,按照基本标准~写?
JavaBean ? EJB 可以q行在?#8220;lg代理”功能? WebSphere 企业版上Qƈ获得那些所有的附加功能?
EJB 服务器还提供独特的特性和服务质量Q而且不完全相同。IBM“lg代理”有一些强大特? -
例如Q可伸羃性,它允许开发h员将 EJB
部vC型pȝ到大型网l的不同cd服务器。开发h员可以从处入手Q例如,在一个部门中Q首先在 LAN ? Java
服务器上部vQ一旦准备好Q就知道可以在那里创徏? JavaBean ? EJB
部v到全球网l。然后,开发h员可以测试ƈ熟悉q些
beanQ试q行Q制作样本等{。满意之后,开发h员可以通过其U至高性能服务器,来大q度扩大其规模。JavaBean ? EJB
不受M计算Zpȝ构边界的限制。它们用 Java ~写Q可以运行在Mh Java 虚拟机的pȝ上,q可以用Q?
Enterprise Java Server (EJS)
来部|对象。因此,开发h员现在可以在方便的系l上构徏Q以后在方便的系l上部vQ而不必是同一台或同样cd的机器?
IBM WebSphere 企业版支持将商业对象部v到多台服务器。EJB
作ؓ商业对象集成?#8220;lg代理”功能Qƈ作ؓM其它商业对象处理。因此,EJB
可以q接到所选的后端pȝQƈ执行M所需操作Q以满其商业需求。这成?#8220;lg代理”? EJB 提供的基设施。通过?#8220;lg代理”用作
EJB 服务器,开发h员将能够l箋使用当前旧有pȝQƈ其与电子商务接口一h供?
Z
EJB 能在
WebSphere“lg代理”环境中工作,可以使用“lg代理”部v工具其安装在一台或多台服务器上Q然后将其添加到命名服务器,以便可以全局查找?
它。Q何可以访问公共命名服务器的h都可以找到它Q找到其宿主Qƈ可以在宿M执行ҎQ同时创? EJB。这是“代理lg”要做的事?
CZ
让我们D一个在 Web 购物站点上可以看到的电子购物车的例子。用L购物车是一?
JavaBean。用户将货架上的商品攑օ购物车,q些商品本n?
JavaBean。它们全部可视,q且面向用户。结帐时Q将用户购物车中的商品发送到服务器上? EJBQ该 EJB
执行一些必要的操作Q如查信用卡授权和可用额度,生成条Q或生成l发货部门的有关提什么货和发货地点的Ҏ指示 -
q就是商业程序已在进行的zd?
l束?
Bean
的全部意义不只是其现有能力,更在于其可以为商业提供的有竞争力的潜在能力。IT
设计师和应用开发h员现在可以将_֊完全集中在商业逻辑Q而将如事务、持久性和安全性的底层工作留给服务器。WebSphere
?#8220;lg代理”功能提供所有这些(q有后端讉KQ和对象事务理器?/p>