Model,javabean和POJO之间的区别

时间:2015-03-31 10:33:14

标签: java model javabeans pojo

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

JAVABEAN

POJO

模型

3 个答案:

答案 0 :(得分:20)

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

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

答案 1 :(得分:2)

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

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

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

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

你可以参考链接

Programming difference between POJO and Bean

答案 2 :(得分:0)

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

根据wiki的定义,

  

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

     

理想情况下,POJO是一个Java对象,除了Java语言规范所强加的限制之外,没有任何其他限制

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

好吧,什么是Java Bean?为什么我们要创建此项目?
我认为this link的描述已经很清楚了。

  

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

为什么我们要让Jave bean表现得如此?

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

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

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

这可以轻松地自动检查和更新bean状态   在框架中,其中许多包含针对各种应用的自定义编辑器   属性类型。设置器可以有一个或多个参数。

  • 该类应可序列化。
  

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

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

  

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

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