• Spring MVC 返回视图时添加的模型数据------POJO


    POJO(Plain Old Java Objects)简单的Java对象,实际就是普通JavaBeans,是为了避免和EJB混淆所创造的简称。

    使用POJO名称是为了避免和 EJB混淆起来, 而且简称比较直接. 其中有一些属性及其getter setter方法的类,没有业务逻辑,有时可以作为 VO(value -object)或 dto(Data Transform Object)来使用.当然,如果你有一个简单的运算属性也是可以的,但不允许有业务方法,也不能携带有connection之类的方法。

    POJO是Plain Old Java Objects的缩写不错,但是它通指没有使用Entity Beans的普通java对象,可以把POJO作为支持业务逻辑的协助类。
    POJO实质上可以理解为简单的实体类,顾名思义POJO类的作用是方便程序员使用数据库中的数据表,对于广大的程 序员,可以很方便的将POJO类当做对象来进行使用,当然也是可以方便的调用其get,set方法。POJO类也给我们在struts框架中的配置带来了 很大的方便。
    POJO有一些private的 参数作为对象的属性。然后针对每个 参数定义了get和set方法作为访问的接口。例如:
    public class User {
    private long id;
    private String name;
    public void setId(long id) {
    this. id = id;
    }
    public void setName(String name) {
    this. name=name;
    }
    public long getId() {
    return id;
    }
    public String getName() {
    return name;
    }
    }
    POJO对象有时也被称为 Data对象,大量应用于表现现实中的对象。如果项目中使用了Hibernate 框架,有一个关联的xml文件,使对象与数据库中的表对应,对象的属性与表中的字段相对应。
    错误的认识:
    POJO是这样的一种“纯粹的”JavaBean,在它里面除了JavaBean规范的方法和属性没有别的东西,即 private属性以及对这个属性方法的public的get和set方法。我们会发现这样的JavaBean很“单纯”,它只能装载数据,作为数据存储 的载体,而不具有业务逻辑处理的能力。
    真正的意思:
    POJO = "Plain Ordinary Java Object",是MartinFowler等发明的一个术语,用来表示普通的Java对象,不是JavaBean, EntityBean 或者 SessionBean。POJO不担当任何特殊的角色,也不实现任何特殊的Java框架的接口如, EJB, JDBC等等。
    即POJO是一个简单的普通的Java对象,它不包含业务 逻辑或持久逻辑等,但不是JavaBean、EntityBean等,不具有任何特殊角色和不继承或不实现任何其它Java框架的类或接口。

    1.     什么是POJO

    POJO的名称有多种,pure old java object 、plain ordinary java object 等。

    按照Martin Fowler的解释是“Plain Old Java Object”,从字面上翻译为“纯洁老式的java对象”,但大家都使用“简单java对象”来称呼它。

    POJO的内在含义是指那些没有从任何类继承、也没有实现任何接口,更没有被其它框架侵入的java对象。

    POCO的概念是从java的POJO借用而来,而两者的含义是一致的,不同的仅仅是使用的语言不一样。所以POCO的解释就是“Plain Old C# Object”。

    2.     为什么会有POJO?

    主要是Java的开发者被EJB的繁杂搞怕了,大家经过反思,又回归“纯洁老式”的JavaBean,即有无参构造函数,每个字段都有getter和setter的java类。

    3.     POJO的意义

    POJO让开发者可专注于业务逻辑和脱离框架的单元测试。除此之外, 由于POJO并不须要继承框架的类或实现其接口,开发者能够极其灵活地搭建继承结构和建造应用。

    POJO的意义就在于它的简单而灵活性,因为它的简单和灵活,使得POJO能够任意扩展,从而胜任多个场合,也就让一个模型贯穿多个层成为现实。

    先写一个核心POJO,然后实现业务逻辑接口和持久化接口,就成了Domain Model; UI需要使用时,就实现数据绑定接口,变成VO(View Object)。

    4.     POJO与PO、VO的区别

    POJO是指简单java对象(Plain Old Java Objects、pure old java object 或者 plain ordinary java object)。

    PO是指持久对象(persistant object持久对象)。

    VO是指值对象或者View对象(Value Object、View Object)。注意,本文的VO特指View Object。

    持久对象实际上必须对应数据库中的entity,所以和POJO有所区别。比如说POJO是由new创建,由GC回收。但是持久对象是insert数据库创建,由数据库delete删除的。基本上持久对象生命周期和数据库密切相关。另外持久对象往往只能存在一个数据库Connection之中,Connnection关闭以后,持久对象就不存在了,而POJO只要不被GC回收,总是存在的。

    由于存在诸多差别,因此持久对象PO(Persistent Object)在代码上肯定和POJO不同,起码PO相对于POJO会增加一些用来管理数据库entity状态的属性和方法。而ORM追求的目标就是要PO在使用上尽量和POJO一致,对于程序员来说,他们可以把PO当做POJO来用,而感觉不到PO的存在。

    5.     POJO的扩展

    POJO仅包含最简单的字段属性,没有多余的东西,它本质上就是一个普通的JavaBean。

    但是在POJO的基础上,能够扩展出不同的对象。

    l           为POJO增加了持久化的方法(Insert、Update、Delete……)之后,POJO就变成了PO。

    l           为POJO增加了数据绑定功能之后,POJO就变成了View Object,即UI Model。

    l           为POJO增加业务逻辑的方法(比如单据审核、转帐……)之后,POJO就变成了Domain Model。

    l           POJO还可以当作DTO使用。

  • 相关阅读:
    SGU 176.Flow construction (有上下界的最大流)
    POJ 2391.Ombrophobic Bovines (最大流)
    poj 1087.A Plug for UNIX (最大流)
    poj 1273.PIG (最大流)
    POJ 2112.Optimal Milking (最大流)
    SGU 196.Matrix Multiplication
    SGU 195. New Year Bonus Grant
    关于multicycle path
    ppt做gif动图
    codeforces 598A Tricky Sum
  • 原文地址:https://www.cnblogs.com/skyLogin/p/6571124.html
Copyright © 2020-2023  润新知