JavaBean和POJO有什么区别?

2022-08-31 05:50:14

我不确定区别。我正在使用Hibernate,在一些书中,他们使用JavaBean和POJO作为可互换的术语。我想知道是否存在差异,不仅在Hibernate上下文中,而且作为一般概念。


答案 1

JavaBean 遵循某些约定。Getter/setter 命名,具有公共默认构造函数,可序列化等。有关更多详细信息,请参阅 JavaBeans 约定

POJO(普通旧Java对象)没有严格定义。它是一个Java对象,它不需要实现特定的接口或从特定的基类派生,或者使用特定的注释来与给定的框架兼容,并且可以是任意的(通常相对简单的)Java对象。


答案 2

所有的JavaBeans都是POJO,但并非所有POJO都是JavaBeans。

JavaBean 是满足某些编程约定的 Java 对象:

  • JavaBean 类必须实现可序列化或可外部化;
  • JavaBean 类必须有一个公共的 no-arg 构造函数;
  • 所有 JavaBean 属性都必须具有公共 setter 和 getter 方法(如果适用);
  • 所有 JavaBean 实例变量都应该是私有的。