“POJO 和 Java Bean 的区别是什么?”的版本间的差异

来自姬鸿昌的知识库
跳到导航 跳到搜索
 
(未显示同一用户的2个中间版本)
第30行: 第30行:
 
没 implements Serializable 就不算是 Java Bean
 
没 implements Serializable 就不算是 Java Bean
 
|}
 
|}
 +
 +
 +
 +
 +
=== Java Beans  的规范 ===
 +
Java Beans 规范是 Java 平台提供的一种模型,用于定义 Java 对象的标准方式。
 +
 +
Java Beans 规范要求Java Bean必须遵循以下几个规则:
 +
 +
# 默认构造函数:Java Bean 必须有一个默认的无参构造函数。
 +
# 可读写属性:Java Bean 必须有一对 getter 和 setter 方法,用于读取和写入该属性的值。
 +
# 序列化:Java Bean 必须实现 Serializable 接口,以便可以在网络上进行序列化和反序列化。
 +
# 可监听性:Java Bean 必须支持事件监听,即当该 Java Bean 的状态改变时,必须能够通知其他对象。
 +
# 可扩展性:Java Bean 必须是可扩展的,即可以通过继承或实现新接口来扩展它的功能。
 +
 +
这些规则是 Java Beans 规范的核心内容,为了方便 Java Bean 的开发和使用,以及支持跨平台使用。
 +
 +
Oracle 官方提供的关于规范的 PDF
 +
 +
https://download.oracle.com/otndocs/jcp/7224-javabeans-1.01-fr-spec-oth-JSpec/

2023年2月8日 (三) 08:04的最新版本

POJO (Plain Old Java Object) 和 Java Bean 有一些不同之处:

  1. 定义不同:POJO 是一种简单的 Java 对象,通常不遵循任何特定的框架或规范。而 Java Bean 是一种遵循 JavaBeans 规范的 Java 对象。
  2. 属性访问不同:POJO 可以有任意类型的属性,并且不需要遵循特定的访问方式。但是,Java Bean 必须遵循 JavaBeans 规范,即必须有默认的构造函数和一对 getter 和 setter 方法来读取和写入该属性的值。
  3. 序列化不同:POJO 不需要序列化,但是如果它需要进行网络传输或存储,则必须序列化。而 Java Bean 必须实现 Serializable 接口,这是 Java Beans 规范的一个重要组成部分。

总的来说,Java Bean 是一种规范化的Java对象,而 POJO 是一种简单的Java对象。

如果需要在框架中使用 Java 对象,则应该使用Java Bean;如果仅仅是需要一个简单的 Java 对象,则可以使用 POJO。

POJO Java Bean
定义 通常不遵循任何特定的框架或规范
属性访问 不需要遵循特定的访问方式

设置或者获取属性值的方法的名称随意命名

必须遵循 JavaBeans 规范,

有默认的空参构造函数和 getter setter

序列化 不是必须 implements Serializable,

不 implements Serializable 也可以叫 POJO

因为 implements Serializable 是 Java Beans 规范的一部分,

所以必须 implements Serializable, 没 implements Serializable 就不算是 Java Bean



Java Beans 的规范

Java Beans 规范是 Java 平台提供的一种模型,用于定义 Java 对象的标准方式。

Java Beans 规范要求Java Bean必须遵循以下几个规则:

  1. 默认构造函数:Java Bean 必须有一个默认的无参构造函数。
  2. 可读写属性:Java Bean 必须有一对 getter 和 setter 方法,用于读取和写入该属性的值。
  3. 序列化:Java Bean 必须实现 Serializable 接口,以便可以在网络上进行序列化和反序列化。
  4. 可监听性:Java Bean 必须支持事件监听,即当该 Java Bean 的状态改变时,必须能够通知其他对象。
  5. 可扩展性:Java Bean 必须是可扩展的,即可以通过继承或实现新接口来扩展它的功能。

这些规则是 Java Beans 规范的核心内容,为了方便 Java Bean 的开发和使用,以及支持跨平台使用。

Oracle 官方提供的关于规范的 PDF

https://download.oracle.com/otndocs/jcp/7224-javabeans-1.01-fr-spec-oth-JSpec/