Java Bean 是可复用的组件,对Java Bean并无严格的规范,理论上讲,任何一个Java类均可以是一个Bean。但一般状况下,因为Java Bean是被容器所建立(如Tomcat)的,因此Java Bean应具备一个无参的构造器,另外,一般Java Bean还要实现Serializable接口用于实现Bean的持久性。Java Bean实际上至关于微软COM模型中的本地进程内COM组件,它是不能被跨进程访问的。Enterprise Java Bean 至关于DCOM,即分布式组件。它是基于Java的远程方法调用(RMI)技术的,因此EJB能够被远程访问(跨进程、跨计算机)。但EJB必须被布署在诸如Webspere、WebLogic这样的容器中,EJB客户从不直接访问真正的EJB组件,而是经过其容器访问。EJB容器是EJB组件的代理,EJB组件由容器所建立和管理。客户经过容器来访问真正的EJB组件。java
POJO(Plain Old Java Object)这个名字用来强调它是一个普通java对象,而不是一个特殊的对象。框架
2005年11月时,“POJO”主要用来指代那些没用听从特定的Java对象模型,约定或框架如EJB的Java对象.
理想地讲,一个POJO是一个不受任何限制的Java对象(除了Java语言规范)。例如一个POJO不该该是
- 扩展预约的类,如 public class Foo extends javax.servlet.http.HttpServlet { ...
- 实现预约的接口,如 public class Bar implements javax.ejb.EntityBean { ...
- 包含预约的标注,如 @javax.ejb.Entity public class Baz{ ...
而后,由于技术上的困难及其余缘由,许多兼容POJO风格的软件产品或框架事实上仍然要求使用预约的标注,譬如用于更方便的持久化。
JavaBean 是一种JAVA语言写成的可重用组件。它的方法命名,构造及行为必须符合特定的约定:
- 这个类必须有一个公共的缺省构造函数。
- 这个类的属性使用getter和setter来访问,其余方法听从标准命名规范。
- 这个类应是可序列化的。
由于这些要求主要是靠约定而不是靠实现接口,因此许多开发者把JavaBean看做听从特定命名约定的POJO。
简而言之,当一个Pojo可序列化,有一个无参的构造函数,使用getter和setter方法来访问属性时,他就是一个JavaBean。