美文网首页Java
Java web引导篇(一):完全理解javabean、enti

Java web引导篇(一):完全理解javabean、enti

作者: Simple_小枫 | 来源:发表于2019-06-21 10:11 被阅读0次

    (1)Javabean

       为什么先说javabean呢?因为最开始学java web的时候,很多人都是从JSP学起的,从而开始认识 这种特殊的类:只包含私有属性,和set、get方法的类。而这种类,就是本篇所讲的重点。

    ps:博主会尽量减少概念性的话语,多用白话文来解释,篇幅可能较长,但理解起来很容易

    javabean是特殊的Java类,它与其它Java类相比而言独一无二的特征:
     ⚪ 提供一个默认的无参构造函数。
     ⚪ 需要被序列化并且实现了Serializable接口。
     ⚪ 可能有一系列可读写属性。
     ⚪ 可能有一系列的"getter"或"setter"方法。

    (2)entity

    entity:实体类。
      我们都是知道java是很接近人类语言的一门“编程语言”,需要什么东西,去new一个对象就好了。但是真正去用的时候,往往需要一个实体,比如说创建一个学生对象,如果没有实体,将会是这样:

    Object student = new Object();
    

    这明明就是一个任意对象,只是给它起了一个 “student”的名字,没有姓名,没有年龄,什么都不是。
    (如果不知道什么是Object,建议先去了解一下java中的Object)

    所以说,要先定义一个实体:

    public class Student {
        private String name;
        private int age;
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public int getAge() {
            return age;
        }
        public void setAge(int age) {
            this.age = age;
        }
    }
    

    有了这个实体以后,再可以创建一个学生对象:

    Student student = new Student();
    

    这个实体中有"姓名"和"年龄"的属性,你才可以给实体对象设置姓名年龄。

    而“Student”这个java类,就是一个实体类
    (实质是一个简化的javabean → 只有私有属性加 set、get方法)


    (3)VO、POJO、PO、DTO、DO

       有了javabean和entity的认识,再认识vo、pojo……就方便多了,它们都是通过这种“特殊的java类”演化而来,只是其中有细微的个别差异。

    VO:表现对象 ---- value object
      通常是Web向模板渲染引擎层传输的对象。再说白一点就是前端与后端交互的对象。
    举个栗子,vo的两种用法:
       后端返回前端:有时前端给后端传一个属性,后端要返回一堆的东西,这一堆东西又分布在很多张表里面,这时可以把需要返回的属性封装成一个vo类,返回给前端就可以了
       前端请求后端:前端请求后端接口,可能会传很多属性,比如注册页,多的有十几个属性,后端如果每个都单独接收,就太麻烦了,这时就把属性封装成一个vo类,所有的属性都在vo里面,后端只需要接收这个vo就可以了

    POJO:简单java对象 ---- plain ordinary java object
      只包含private修饰的属性和与之对应的set、get方法。没有继承,没有接口,没有注解,没有被其它java框架入侵。(有时会直接做为与数据表一一对应的映射类)

    PO:持久化对象 ---- Persistent Object
      一般与数据库中,表结构形成一一对应的映射关系。

    DTO:数据传输对象 ---- data transfer object
      数据传输对象,Service向外传输的对象

    DO:领域对象 ---- Domain Object
      从现实世界中抽象出来的有形或无形的业务实体
    (自黑时刻:什么场景使用本人其实也不知道,甚至这概念都不太懂,查了不少资料就他么这一句话!)

    自我总结一波:这5种叫法实质内容都差不多,只是不同的业务场景使用不同的名字,能使整个项目更加清晰。

    (4)BO、DAO

    BO:业务对象 ---- business object
    由Service层输出的封装业务逻辑的对象,没啥好解释的,说到底就是解耦吧。

    DAO:数据访问对象 ---- data access object
    持久化的操作,数据库的增删改查,一般以接口的形式存在。


    博客推荐:
    DAO,Service,BO的关系 我用的ssm架构就是这篇博客中所说的模式1
    阿里巴巴Java开发手册中的DO、DTO、BO、AO、VO、POJO定义


    如有错误的地方,麻烦指出,谢谢!😘

    相关文章

      网友评论

        本文标题:Java web引导篇(一):完全理解javabean、enti

        本文链接:https://www.haomeiwen.com/subject/trusfctx.html