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

5
我已经阅读了有关EJB、Java Beans的文章,但我仍然对术语“bean”本身的含义存在疑惑。
A)“bean”这个术语本身是否存在?
B)现在来谈Java Beans。据我所知,它只是一个遵循某些命名约定并具有getter和setter的普通POJO?然而,我很难理解这种约定是如何使它们成为“可重用组件”的,正如我在许多帖子(包括SO)中所读到的那样。
虽然有一些与此类似的SO帖子,但它与众不同的是:我询问的是计划术语“bean”是否存在;以及Java Beans如何成为可重用组件。
请有人能简单地澄清这一点吗?

1
我也阅读了那篇帖子,但是它没有回答(B)。 - CuriousMind
1个回答

4

“Bean”一词经常用作JavaBean或Enterprise Java Bean(取决于上下文)的缩写。因此,“bean”这个术语存在于程序员的共同语言中,通常指Java中可重复使用的对象/组件。

JavaBean是一个POJO类,具有特定的getter和setter命名约定,不仅如此:它通常还封装其他对象(属性),可序列化并且具有零参数构造函数。Sun(在那时)开发了完整的JavaBean规范,将其定义为“可以在构建工具中可视化操作的可重复使用软件组件”。此外,在JavaBean规范中还声明:

各个Java Bean将因其支持的功能而异,但区分Java Bean的典型统一特征包括:

  • 支持“内省”,以便生成器工具可以分析Bean的工作方式
  • 支持“自定义”,以便在使用应用程序构建器时,用户可以自定义Bean的外观和行为
  • 支持“事件”作为一种简单的通信隐喻,可用于连接Bean
  • 支持“属性”,既用于自定义,也用于编程使用。
  • 支持持久性,以便在应用程序构建器中自定义Bean,然后将其自定义状态保存并重新加载

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接