Model、javabean、POJO的区别

Difference among Model, javabean and POJO

我从 spring 开始学习 MVC。我听过很多时间 Bean,其中包含 setter 和 getter。 Model 基本上是数据流动的地方,PojoBean 相同。但我真的对这个术语感到困惑,所有这些对我来说都是一样的,你能解释一下它们之间的确切区别吗?

JavaBEAN

POJO

型号

唯一不同的是bean可以序列化。

来自 Java 文档 - http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html

class 的可串行化由实现 java.io.Serializable 接口的 class 启用。 类 不实现此接口的状态将不会被序列化或反序列化。可序列化 class 的所有子类型本身都是可序列化的。序列化接口没有方法或字段,仅用于标识可序列化的语义。

虽然模型是处理您的业务逻辑的不同事物。

你可以参考下面link

Programming difference between POJO and Bean

如果您使用的是 MVC 架构,那么模型代表您的域:表示您的实体,它不是 java 相关术语。
您的模型在 Java 中表示为 Java Beans(Java EE 中的最佳实践)。
Java Bean 是一个普通的 Java class,它实现了 Serializable 接口并具有无参数构造函数,并且每个字段都有 getter 和 setter。

然而,POJO 只是对象的一种命名,除了 Java 语言规范 (Wikipeadia) 强制的限制外,不受任何限制。这只是为了约定,与 MVC 架构没有严格关系。
请注意,Java bean 是实现 Serializable 接口的 POJO。

作为补充,有必要说明每一项的用途。

根据 wiki

定义

The term "POJO" initially denoted a Java object which does not follow any of the major Java object models, conventions, or frameworks

Ideally speaking, a POJO is a Java object not bound by any restriction other than those forced by the Java Language Specification

通常,POJO 不依赖于任何库、接口或注释。因此,一个POJO更有可能被不同的系统重用。

好的,那么什么是 Java Bean,我们为什么要创建这个项目?
this link 的描述我认为已经足够清楚了。

JavaBeans are classes that encapsulate many objects into a single object (the bean). They are serializable, have a zero-argument constructor, and allow access to properties using getter and setter methods.

为什么我们希望 Jave bean 表现得像这样?

  • class 必须有一个 public 默认构造函数(不带参数)。

This allows easy instantiation within editing and activation frameworks.

  • class 属性必须可以使用 get、set、is(可用于布尔属性而不是 get)、to 和其他方法(所谓的访问器方法和修改器方法)访问标准命名约定。

This allows easy automated inspection and updating of bean state within frameworks, many of which include custom editors for various types of properties. Setters can have one or more than one argument.

  • class 应该是可序列化的。

This allows applications and frameworks to reliably save, store, and restore the bean's state in a manner independent of the VM and of the platform.

通常,模型不会与 POJO 或 JaveBean 进行比较,因为它们是完全不同的项目。就像其他答案提到的那样,该模型通常是 MVC.

的概念

The model is the central component of the pattern. It is the application's dynamic data structure, independent of the user interface.[6] It directly manages the data, logic and rules of the application.

如你所见,POJO或JavaBean可以在MVC模式中的模型层但模型层但模型层有更多的东西,例如,应用程序的逻辑和规则.