Javabean和EJB之间的区别

时间:2009-09-01 10:44:58

标签: java ejb javabeans

来自相对Java新手的一个简单问题:

JavaBean和EJB之间有什么区别?

5 个答案:

答案 0 :(得分:33)

Java bean只是一组约定。 EJB是J2EE业务组件的标准。

特别是Java bean:

  • 有一个公共默认构造函数;
  • 可读属性方法以“get”;
  • 开头
  • 可写属性方法以“set”开头;和
  • 是Serializable。

例如,具有“margin”属性的Java bean最低限度如下:

public class MyBean implements Serializable {
  private int margin;

  public MyBean() { }
  public int getMargin() { return margin; }
  public void setMargin(int margin) { this.margin = margin; }
}

EJB,尽管名称,几乎完全不相关。

答案 1 :(得分:11)

看一下这篇文章 - JavaBeans vs Enterprise JavaBeans

  

内容:

     

JB

     

JavaBeans采用低级方法   开发可重用的软件   可用于的组件   构建不同类型的Java   应用程序(小程序,独立   应用程序等)在任何领域。

     

EJB

     

Enterprise JavaBeans需要一个   高层建筑方法   分布式系统。它释放了   应用开发人员集中精力   仅编程业务逻辑   同时删除所有写的需要   需要的“管道”代码   任何企业申请。

答案 2 :(得分:7)

  1. JavaBeans在运行时可能是可见的或不可见的。对于 例如,可视GUI组件可以是按钮,列表 框,图形或图表。

    EJB是一个非可视的远程对象。

  2. JavaBeans旨在成为单个进程的本地 并且主要用于在客户端运行。虽然 一个人可以开发服务器端JavaBeans,它要容易得多 相反,使用EJB规范开发它们。

    EJB是远程可执行组件或业务 只能在服务器上部署的对象。

  3. JavaBeans是一种创建泛型的组件技术 可以组合成applet的Java组件 和应用程序。

    即使EJB是一种组件技术,它也不是 构建或扩展原始JavaBean规范。

  4. JavaBeans有一个名为properties的外部接口 interface,允许构建器工具解释 bean的功能。

    EJB有一个描述它的部署描述符 外部构建器工具或IDE的功能。

  5. JavaBeans可能有BeanInfo个类,属性编辑器或 定制

    EJB没有BeanInfo类,属性的概念 编辑或定制工具,不提供其他信息 除了部署描述符中描述的内容之外。

  6. 未键入JavaBeans。

    EJB有两种类型 - 会话bean和实体bean。

  7. JavaBeans中的事务不存在明确的支持。

    EJB可能是事务性的,EJB服务器也是如此 交易支持。

  8. 组件桥可用于JavaBeans。例如,a JavaBean也可以部署为Activex控件。

    EJB无法部署为ActiveX控件,因为 ActiveX控件旨在在桌面上运行 EJB是服务器端组件。但是CORBA-IIOP 通过EJB-to-CORBA映射的兼容性由 OMG。

答案 3 :(得分:6)

答案 4 :(得分:4)

我发现从接受的答案中理解起来很麻烦,所以用Google搜索了几个链接并得到了以下答案。

Enterprise JavaBeans (EJB) 3.1这些是 J2EE规范 ,它指示服务器(应用程序服务器)在 EJB容器

  

EJB技术是用于开发和部署基于组件的业务应用程序的服务器端组件体系结构。 EJB技术支持基于Java EE 6技术的分布式,事务性,安全性和可移植应用程序的快速和简化开发。

用简单的语言: 如果您创建EJB并将其部署在服务器上,则可以将其命名为远程(使用某种技术,即使用RMI进行JNDI查找)或本地(即在应用程序中)

另一方面,Java beans是一个带有getter和setter的简单普通Java类,并且该类是序列化的,下面是示例:

public class MyBean implements java.io.Serializable
{
   protected  int theValue;

   public MyBean()
   {
   }

   public void setMyValue(int newValue)
   {
      theValue = newValue;
   }

   public int getMyValue()
   {
      return theValue;
   }
}

因此,这意味着EJB和Java Bean之间没有比较,两者都是完全不同的概念。