【发布时间】:2015-03-31 10:33:14
【问题描述】:
我从 Spring 开始学习 MVC。我听说过很多时间Bean,其中包含 setter 和 getter。 Model 基本上是数据流向,Pojo 与Bean 相同。但是我对这个术语真的很困惑,所有这些对我来说看起来都一样,你能解释一下它们之间的确切区别吗?
JAVABEAN
POJO
型号
【问题讨论】:
我从 Spring 开始学习 MVC。我听说过很多时间Bean,其中包含 setter 和 getter。 Model 基本上是数据流向,Pojo 与Bean 相同。但是我对这个术语真的很困惑,所有这些对我来说看起来都一样,你能解释一下它们之间的确切区别吗?
JAVABEAN
POJO
型号
【问题讨论】:
如果您使用的是 MVC 架构,那么模型代表您的域:表示您的实体,它不是与 Java 相关的术语。
您的模型在 Java 中表示为 Java Bean(Java EE 中的最佳实践)。
Java Bean 是一个普通的 Java 类,它实现了 Serializable 接口,有一个无参数的构造函数,每个字段都有 getter 和 setter。
然而,POJO 只是对象的一个名称,它不受 Java 语言规范 (Wikipeadia) 强制限制之外的任何限制的约束。这只是为了约定,它与 MVC 架构并不严格相关。
请注意,Java bean 是实现 Serializable 接口的 POJO。
【讨论】:
唯一的区别是 bean 可以被序列化。
来自 Java 文档 - http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html
类的可序列化性由实现 java.io.Serializable 接口的类启用。未实现此接口的类将不会对其状态进行任何序列化或反序列化。可序列化类的所有子类型本身都是可序列化的。序列化接口没有方法或字段,仅用于识别可序列化的语义。
虽然模型是处理业务逻辑的不同事物。
你可以参考下面的链接
【讨论】:
作为补充,有必要描述每个项目的意图。
定义自wiki,
术语“POJO”最初表示不遵循的 Java 对象 任何主要的 Java 对象模型、约定或框架
理想情况下,POJO 是一个 Java 对象,不受 Java 语言规范强制限制之外的任何限制
通常,POJO 不依赖于任何库、接口或注释。因此,一个 POJO 更有可能被不同的系统重用。
好的,那么 Java Bean 是什么以及我们为什么要创建这个项目?
我认为this link 的描述已经很清楚了。
JavaBeans 是将许多对象封装到一个单独的类中的类 对象(bean)。它们是可序列化的,具有零参数 构造函数,并允许使用 getter 和 setter 访问属性 方法。
为什么我们希望 Jave bean 有这样的行为?
这允许在编辑和激活中轻松实例化 框架。
这允许轻松自动检查和更新 bean 状态 在框架内,其中许多包括各种自定义编辑器 属性类型。 Setter 可以有一个或多个参数。
这允许应用程序和框架可靠地保存、存储和 以独立于 VM 和 平台。
通常,模型不会与 POJO 或 JaveBean 进行比较,因为它是完全不同的项目。就像其他答案提到的一样,模型通常是来自MVC的概念。
模型是模式的核心组成部分。它是 应用程序的动态数据结构,独立于用户 [6]它直接管理数据、逻辑和规则 应用。
如您所见,在 MVC 模式中,POJO 或 JavaBean 可以在模型层,但在模型层但模型层还有很多东西,例如应用程序的逻辑和规则。
【讨论】: