type
Post
status
Published
date
Jan 5, 2022
slug
summary
介绍 POJO、DO、DTO、VO、BO 等对象的含义和用途
tags
项目方案
category
技术分享
icon
password
notion image

POJO

  • 普通 Java 对象
    • 指只有setter/getter/toString的简单Java类
  • 包括DO/DTO/BO/VO(即他们的统称)
  • 阿里编码归约的命名风格中提到:
    • POJO是DO/DTO/BO/VO的统称,禁止命名成xxxPOJO

DO 对象

(Data Object)
  • 数据对象
    • 属性和数据表结构一一对应,用于Service 层和 DAO 层数据传递
  • 通常 DO 对象也用 POJO 来指代
  • 阿里编码归约命名风格:
    • 数据对象:xxxDO,xxx即为数据表名

DTO 对象

(Data Transfer Object)
  • 数据传输对象
    • 用于 Service 层和 DAO 层数据传递。但通常是现有的实体类无法承载复杂数据结果,需要对现有对象进行扩展,或者只取有含义,需要返回的业务字段。
  • 业务对象,Service 层将 DAO 层返回的 POJO 对象进一步处理封装,成了 BO 对象

VO

  • (View Object)表现层(展示)对象,通常是后端向前端传输的对象,也就是用来封装响应参数的对象,有时候也叫 Request 对象 或 Query 对象
  • (Value Object) 值对象,乘载 Controller和 Service 层数据流向,并响应给前端
当业务复杂性更强时,引入BO(Business Object),用来接收前端参数即将VO 拆分为两个对象

BO

(Business Object)
解决跨域并携带CookieSpringBoot 项目主机名解析导致启动慢