Model,javabean和POJO之间的区别
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Model,javabean和POJO之间的区别相关的知识,希望对你有一定的参考价值。
我开始用spring学习MVC。我听过很多时间Bean
,包含setter和getter。 Model
基本上是数据流动的,Pojo
与Bean
相同。但是我在这个术语中真的很困惑,所有这些对我来说都是一样的,请你们解释一下这些术语的确切区别。
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之间的区别的主要内容,如果未能解决你的问题,请参考以下文章