Bean、Java Bean 和 Enterprise Java Bean 之间的区别

Cur*_*ind 5 java ejb javabeans

我已经阅读了 EJB、Java Beans ,但是我仍然对术语“bean”本身的含义有疑问?

A)简单的术语“bean”本身是否存在?

B) 现在来到 Java Beans。正如我所读到的,它只是一个遵循一些命名约定的普通 POJO,并且有 getter 和 setter?但是,正如我在包括 SO 在内的许多帖子中所读到的那样,我很难理解这个约定如何使它们成为“可重用组件”。

有一些与此类似的 SO 帖子,但不同之处在于:我在问计划术语“bean”是否存在;以及为什么 java bean 是可重用的组件。

有人可以用简单的术语澄清这一点。

iul*_*anr 4

简单的术语“bean”经常用作 JavaBean 或 Enterprise Java Bean 的快捷方式(取决于上下文)。因此,该术语存在于程序员的通用语言中,通常指 Java 中的可重用对象/组件。

\n\n

JavaBean 是一个 POJO 类,具有特定的 getter 和 setter 命名约定,这是事实,而且不仅如此:它通常是其他对象(属性)的封装,是可序列化的,并且具有零参数构造函数。\n有一个完整的规范由Sun(当时)关于JavaBean。Sun 将其定义为“可在构建器工具中进行可视化操作的可重用软件组件”。此外,在 JavaBean 规范中指出:

\n\n
\n

各个 Java Bean 所支持的功能会有所不同,但区分 Java Bean 的典型统一功能是:

\n
\n\n
    \n
  • 支持 \xe2\x80\x9cintrospection\xe2\x80\x9d 以便构建器工具可以分析 bean 的工作方式
  • \n
  • 支持 \xe2\x80\x9ccustomization\xe2\x80\x9d,以便在使用应用程序生成器时用户可以自定义 bean 的外观和行为
  • \n
  • 支持 \xe2\x80\x9cevents\xe2\x80\x9d 作为可用于连接 bean 的简单通信隐喻
  • \n
  • 支持 \xe2\x80\x9cproperties\xe2\x80\x9d,用于自定义和编程使用。
  • \n
  • 支持持久性,以便可以在应用程序构建器中自定义 bean,然后保存其自定义状态并在稍后重新加载。
  • \n
\n\n

重要的部分是可以进行可视化操作,因此需要 getter/setter、事件、零参数构造函数(以便它们可以在外部实例化)、可序列化。

\n\n

检查此链接了解更多详细信息:http://download.oracle.com/otn-pub/jcp/7224-javabeans-1.01-fr-spec-oth-JSpec/beans.101.pdf ?AuthParam=1435694253_b87821c280430a0230bf8d22223c79d2

\n