Model,javabean和POJO之间的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Model,javabean和POJO之间的区别相关的知识,希望对你有一定的参考价值。

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

JAVABEAN

POJO

模型

答案

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

然而,POJO只是不受Java语言规范(Wikipeadia)强制限制之外的任何限制约束的对象的名称。这仅仅是出于惯例,它与MVC架构并不严格相关。 请注意,Java bean是实现Serializable接口的POJO。

另一答案

唯一的区别是bean可以序列化。

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

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

虽然模型是处理业务逻辑的不同之处。

你可以参考下面的链接

Programming difference between POJO and Bean

另一答案

作为补充,有必要描述每个项目的意图。

根据wiki的定义,

术语“POJO”最初表示Java对象,其不遵循任何主要Java对象模型,约定或框架

理想情况下,POJO是一个Java对象,除了Java语言规范强制的限制之外,不受任何限制的约束

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

好的,那么什么是Java Bean以及为什么我们创建这个项目? this link的描述澄清了我的想法。

JavaBeans是将许多对象封装到单个对象(bean)中的类。它们是可序列化的,具有零参数构造函数,并允许使用getter和setter方法访问属性。

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

  • 该类必须具有公共默认构造函数(不带参数)。

这允许在编辑和激活框架内轻松实例化。

  • 根据标准命名约定,必须使用get,set,is(可以用于布尔属性而不是get),以及其他方法(所谓的访问器方法和mutator方法)来访问类属性。

这允许在框架内轻松自动检查和更新bean状态,其中许多包括用于各种类型属性的自定义编辑器。 Setter可以有一个或多个参数。

  • 该类应该是可序列化的。

这允许应用程序和框架以独立于VM和平台的方式可靠地保存,存储和恢复bean的状态。

通常,模型不与POJO或JaveBean进行比较,因为它是完全不同的项目。与其他答案所提到的一样,该模型通常是来自MVC的概念。

该模型是该模式的核心组成部分。它是应用程序的动态数据结构,独立于用户界面。[6]它直接管理应用程序的数据,逻辑和规则。

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

以上是关于Model,javabean和POJO之间的区别的主要内容,如果未能解决你的问题,请参考以下文章

JavaBean 和 POJO 有啥区别?

POJO 和JavaBean的区别

pojo和javabean的区别

POJO是什么,javabean是什么,以及POJO与javabean的区别

POJO和JavaBean的区别

java对象 POJO和JavaBean的区别