我们开发的时候 往往都是 三层架构 即 controller、service、dao层。往往开发的时候,各种各样的需求 需要我们添加新的层次去操作。

先讲解下 基础的三层架构

先模拟一个场景:饿了想喝水,人体是如何执行呢?

  • Controller层 是对前端或者接口的响应一个逻辑处理的层。可理解成 大脑,得知身体发送的请求,需要去喝水了,就去找Service 神经中枢 去找具体器官 操作。
  • Service层 是对Controller的功能的响应一个逻辑处理的层,是对后台的有关联的逻辑的一个处理。可理解成神经中枢,得到大脑的指令,就开始去找器官,让器官干活。
  • Dao层 是对Service的功能的响应的实现,这个层级调用的是数据库,这个层级调用sql代码的,这里 理解成(器官)手,开始拿起杯子 喝水。

最近,看到一些讲到 vo、dto等各种各样的层次,本篇文章,就对此做下讲解。

VO

Value Object 值对象 也可以理解成视图对象。出参
主要体现在视图的对象,对于一个WEB页面将整个页面的属性封装成一个对象。然后用一个VO对象在控制层与视图层进行传输交换。

DTO

Data Transfer Object 数据传输对象。入参

含义:DTO (经过处理后的PO,可能增加或者减少PO的属性)

比如我们一张表有100个字段,那么对应的PO就有100个属性。
但是我们界面上只要显示10个字段,客户端用WEB service来获取数据,没有必要把整个PO对象传递到客户端,这时我们就可以用只有这10个属性的DTO来传递结果到客户端。

PO

Persistant Object持久对象,从DB获取到的数据。

利用BeanUtils实现DTO、PO、VO的互转

    // 注意:此BeanUtils是Spring官方的!也可使用Apache-comment包下的
    @Test
    void UserToVO() {
        User user = new User("张三", 21, true);
        UserVO userVO = new UserVO();
        BeanUtils.copyProperties(user,userVO);
        // System.out.println(userVO);
    }

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注