【问题标题】:Difference among Model, javabean and POJOModel、javabean、POJO的区别
【发布时间】:2015-03-31 10:33:14
【问题描述】:

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

JAVABEAN

POJO

型号

【问题讨论】:

    标签: java model javabeans pojo


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

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

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

      你可以参考下面的链接

      Programming difference between POJO and Bean

      【讨论】:

        【解决方案3】:

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

        定义自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 状态 在框架内,其中许多包括各种自定义编辑器 属性类型。 Setter 可以有一个或多个参数。

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

        这允许应用程序和框架可靠地保存、存储和 以独立于 VM 和 平台。

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

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

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

        【讨论】:

          猜你喜欢
          • 2010-11-26
          • 2011-03-10
          • 1970-01-01
          • 2013-06-03
          • 1970-01-01
          • 1970-01-01
          • 2013-05-21
          • 1970-01-01
          • 2010-12-09
          相关资源
          最近更新 更多