里或者PO里都不恰当 3、为什么要有VO?...VO是拿给前端展示给用户的实体 a) 有一些敏感的属性不能给前端展示,涉及安全问题 4、为什么要有DTO?...举例: 1、前端传给我们的参数我们自动封装成了VO 2、我们在Controller里把VO转成了BO,然后调用Service里的方法 3、Service层处理业务的时候发现要调用一个外部服务,那么就组装一个...DTO参数去调用外部RPC服务,最终得到的DTO的结果我们在转成我们自己的BO再参与到业务处理中 4、Service处理的结果要查询DB,那么从DAO层返回来的是一个PO,我们也是把PO先转成我们的BO...在参与业务处理 5、Service层处理完业务返回了一个BO,然后在Controller里我们把他转成VO再对外提供出去 五、遵循了原则?
在Java项目中,包名通常用于组织代码,使其更加清晰和易于维护。entity、pojo、vo和dto是常见的包名,它们各自有不同的含义和用途。...2.pojo(Plain Old Java Object 包) 详细说明: pojo包中的类通常是简单的Java对象,它们不包含任何业务逻辑,主要用于数据的封装。...3.vo(Value Object 包) 详细说明: vo包中的类通常用于封装特定的业务逻辑或数据处理。与pojo不同,vo类可能包含一些业务逻辑,如数据转换、验证等。...4.dto(Data Transfer Object 包) 详细说明: dto包中的类用于在不同的层之间传输数据,它们通常包含多个entity或pojo对象的数据,用于简化数据传输过程。...总结 名称 说明 Entity 实体,通常和数据库中的表对应 DTO 数据传输对象,通常用于程序中各层之间传递数据 VO 视图对象,为前端展示数据提供的对象 POJO 普通Java对象,只有属性和对应的
作为Java开发人员,大部分人不免要接触VO,BO,PO,DO,DTO之类的,但很多人对这些概念一直以来都是云里雾里,团队开发过程中也总是处于混乱的状态,抓起来就用,本来是规范性的东西,却反而导致更加混乱了...VO比较容易混淆的是DTO,DTO是展示层与服务层之间传递数据的对象,可以这样说,对于绝大部分的应用场景来说,DTO和VO的属性值基本是一致的,而且他们通常都是POJO,那么既然有了VO,为什么还需要DTO...,服务层只负责业务,与具体的表现形式无关,DTO不应该出现与表现形式的耦合,DTO定义的是原始数据,VO再对DTO数据进行解释。...这下VO和DTO用法就清晰很多了。...例如业务不复杂,根本没有多端展示的差异化,VO可以直接拿掉,直接使用DTO传输到前端数据即可。
1.VO,DTO,PO的概念 VO 是Value Object 的缩写,值对象,位于视图层,每一个字段与视图层所需要的字段对应 DTO是Data Transfer Object 的缩写,数据传输对象...了 我们要先从页面上拿到VO,然后判断VO中的age是不是大于20,如果大于20,就把VO中的username和password拿出来,放到DTO中,然后在把DTO中的username和password...原封不动地放入PO中,然后将PO传入数据库,这就是他们三个的区别 PS:VO对应于页面上需要显示的数据,PO对应于数据库中存储的数据,DTO对应于除二者之外需要进行传递的数据,DTO只是VO到PO,或者...VO。...展示层把VO转换为服务层对应方法所要求的DTO,传送给服务层。 服务层首先根据DTO的数据构造(或重建)一个DO,调用DO的业务方法完成具体业务。
前言 VO:(View Object)视图对象,一般位于Controller层,用于展示视图。...DTO VO:展示层需要展示的数据。...DTO:业务逻辑层需要接收的数据和返回的数据。 VO与DTO的属性值基本相同,但是VO是DTO的最终解释,可以对DTO的字段进行适当删减。...举个例子: 例子1: DTO中返回的字段为: { "sex": "女", } 对于大部分需求来说中返回的字段为中返回的字段就已经够用了,但是如果说业务的需求是展示具体的身份,那就需要在VO层进行进一步解释...: VO中返回的字段为: { "sex": "女演员", } 例子2: DTO: { "sex": "男", "age": "17" } 如果说展示层只需要展示是否成年: VO:
里或者PO里都不恰当 3、为什么要有VO?...VO是拿给前端展示给用户的实体 a) 有一些敏感的属性不能给前端展示,涉及安全问题 4、为什么要有DTO?...先上图 image.png 举例: 1、前端传给我们的参数我们自动封装成了VO 2、我们在Controller里把VO转成了BO,然后调用Service里的方法 3、Service层处理业务的时候发现要调用一个外部服务...,那么就组装一个DTO参数去调用外部RPC服务,最终得到的DTO的结果我们在转成我们自己的BO再参与到业务处理中 4、Service处理的结果要查询DB,那么从DAO层返回来的是一个PO,我们也是把PO...先转成我们的BO在参与业务处理 5、Service层处理完业务返回了一个BO,然后在Controller里我们把他转成VO再对外提供出去 五、遵循了原则?
POJO 全称为:Plain Ordinary Java Object,即简单普通的java对象。一般用在数据层映射到数据库表的类,类的属性与表字段一一对应。...DTO 全称为:Data Transfer Object,即数据传输对象。一般用于向数据层外围提供仅需的数据,如查询一个表有50个字段,界面或服务只需要用到其中的某些字段,DTO就包装出去的对象。...VO 全称为:Value Object,有的也称为View Object,即值对象或页面对象。一般用于web层向view层封装并提供需要展现的数据。
真的有必要定义 VO,BO,PO,DO,DTO 吗 在讲具体的概念之前,先简单的讲一讲MVC开发模式。...> 而VO,BO,PO,DO,DTO呢,就是穿梭在这M、V、C层之间的实体传输对象。...项目中真的有必要定义VO,BO,PO,DO,DTO吗? 还是要理性看待这个问题,要看项目“目的地”是什么。...如果项目比较小,是一个简单的MVC项目,又是单兵作战,不建议使用VO,BO,PO,DO,DTO,直接用POJO负责各个层来传输就好,因为这种项目的“目的地”是快速完成。...而更多的时候,是持续迭代的团队协作项目,这个时候就建议用VO,BO,PO,DO,DTO,而且团队内要达成共识,形成一个标准规范。
导图下载请点击文章底左下角->阅读原文 VO与DTO的区别 DTO代表服务层需要接收的数据和返回的数据,而VO代表展示层需要显示的数据。...对于绝大部分的应用场景来说,DTO和VO的属性值基本是一致的,而且他们通常都是POJO,因此没必要多此一举,但不要忘记这是实现层面的思维,对于设计层面来说,概念上还是应该存在VO和DTO,因为两者有着本质的区别...VO与DTO的应用 上面只是用了一个简单的例子来说明VO与DTO在概念上的区别,本节将会告诉你如何在应用中做出正确的选择。...在以下才场景中,我们可以考虑把VO与DTO二合为一(注意:是实现层面): 当需求非常清晰稳定,而且客户端很明确只有一个的时候,没有必要把VO和DTO区分开来,这时候VO可以退隐,用一个DTO即可,为什么是...VO退隐而不是DTO?
# 关于DO,VO,DTO,QueryParam的思考 总结一下最近项目中的一些问题 DO(Domain Object):领域对象,就是从现实世界中抽象出来的有形或无形的业务实体。...当针对的查询语句时,可以将查询的VO对象单独定义一个,用QueryParam作为查询对象,与基本的VO区别开来 DTO(Data Transfer Object):数据传输对象,主要用于外部接口参数传递封装...:用于接口间的传输,可以不同于DO传递接口间需要的参数,本文DTO和DO一致 package com.test.understand.pojo.dto; import java.util.Date; import...在返回值到达Controller之后,由于需要展示给前端,DTO对象还需要转化为VO对象 # 总结 除QueryParam以外,VO对象进入Controller之后需要进行对象转换变为DTO方便数据在接口中间的传递...在数据库操作之前,DTO对象需要转换为DO 在返回值的过程中,数据库返回的对象除基本类型之外需要转为DTO传递 在返回值回到Controller时,需要将DTO对象转换为VO对象,从而返回给前端
以下内容参考阿里巴巴 Java 开发手册,如果有需要可以在微信公众号「01 二进制」后台回复「Java 开发手册」获得。...•POJO( Plain Ordinary Java Object):POJO 专指只有 setter/getter/toString 的简单类,包括 DO/DTO/BO/VO 等。...•DTO,用于传输数据,可能传递给前端,也有可能传递给其他系统。用于承载数据。•VO,这个最好理解,前端最后需要的数据长什么样,对应的对象就是 VO。 如何使用这些 O?...2.DTO 和 BO 在一般情况下,如果业务系统不是非常复杂,可以考虑省略。3.VO 和 DTO,DTO 可以用于将数据传递给前端,如果你不需要删减字段的话,VO 可以考虑省略。...•POJO 是 DO/DTO/BO/VO 的统称,禁止命名成 xxxPOJO。
图片前言在开发的过程中,我们要常常要实现DTO(数据传输对象)转VO(视图对象)。可能你会问,什么是DTO,什么是VO?...; Date expire;}那么从dto传输值到vo。...BeanUtils.copyProperties(account,vo);方案三:自己实现dto转vo接口我们知道,BeanUtils是通过反射机制实现,那我们也可以通过反射实现一个属于自己的dto转vo...;import java.lang.reflect.Field;import java.util.Arrays;import java.util.function.Consumer;/** * 用于DTO...快速转换VO实现,只需将DTO类继承此类即可使用 */public interface BaseData { /** * 创建指定的VO类并将当前DTO对象中的所有成员变量值直接复制到VO
PO、VO、BO、DO、DAO、DTO、POJO 博主 默语带您 Go to New World....摘要: 在软件开发领域,有许多用于表示不同概念的缩写,如PO、VO、BO、DO、DAO、DTO和POJO。...)管理数据传输,而POJO(普通旧Java对象)则是简单的Java对象。...省略其他属性和方法 } POJO - 普通Java对象(Plain Old Java Object) POJO是简单的Java对象,没有特定的限制和约束,是普通的Java类。...总结: 在现代软件开发中,PO、VO、BO、DO、DAO、DTO和POJO等术语代表了不同类型的数据对象和操作,它们有助于实现清晰的代码架构和模块化设计。
——杨沫 之前一直有朋友问我Java中DTO、TO、VO、PO、DO、BO、AO、DAO、POJO这么多O到底是什么意思,看博客看不懂,有没有实际的例子 当然,这些O是出自《阿里Java开发手册》...POJO(Plain Ordinary Java Object): 在本规约中,POJO 专指只有 setter/getter/toString 的 简单类,包括 DO/DTO/BO/VO 等。...我就说说我的理解吧,顺带写点例子 这里就写个根据用户名、分页参数查询用户列表的例子吧 DTO(Data Transfer Object)数据传输对象 首先我们接口接参可以使用DTO,简单来说就是Controller...Object)**专指只有 setter/getter/toString 的简单类,包括 DO/DTO/BO/VO 等。...这就是我对DTO、TO、VO、PO、DO、BO、AO、DAO、POJO的理解了 其实在不同的公司,不同的技术经理会定好,或者公司内部有相关文档等,这上面也只是我当前公司沿用的,仅供参考,如有争议也欢迎与我探讨
引言 在Java企业级开发中,我们经常会遇到POJO、PO、DTO、BO、VO等各种对象概念,这些看似相似的术语常常让开发者感到困惑。...Object,简单Java对象) 定义:POJO是所有简单Java对象的统称,VO、DTO、PO等均属于POJO 特点:仅包含属性及Getter/Setter方法,不依赖特定框架 二、对比与区别 1、...,可能组合多个PO VO Controller层与前端交互 按前端需求定制字段 2、关键区别 PO vs DTO:PO严格映射数据库表,DTO可根据业务需求裁剪字段 DTO vs VO:DTO关注传输效率...例如,DTO可能包含敏感字段(如用户ID),而VO仅展示脱敏后的信息 BO vs PO:BO包含业务逻辑,PO仅存储数据。...VO保护敏感数据,DTO适配不同接口需求,PO确保数据持久化准确,BO封装复杂业务逻辑。在开发中,根据项目复杂度选择合适的对象类型,并统一团队规范,提升代码可读性和可维护性。
TO(Transfer Object) ,数据传输对象 在应用程序不同 tie( 关系 ) 之间传输的对象 DTO(Data Transfer Object)数据传输对象 这个概念来源于J2EE的设计模式...VO(view object) 值对象 视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。...封装业务逻辑的 java 对象 , 通过调用 DAO 方法 , 结合 PO,VO 进行业务操作。 business object: 业务对象 主要作用是把业务逻辑封装为一个对象。...POJO(plain ordinary java object) 简单无规则 java 对象 纯的传统意义的 java 对象。...配合 VO, 提供数据库的 CRUD 操作
VO(View Object):视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。...DTO(Data Transfer Object):数据传输对象,这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提高分布式调用的性能和降低网络负载
PO VO DTO 博主 默语带您 Go to New World. ✍ 个人主页—— 默语 的博客 《java 面试题大全》 惟余辈才疏学浅,临摹之作或有不妥之处,还请读者海涵指正。...DemoMapper.class); //将已有的目标对象当作一个参数传进来 DemoDto toDemoDto(Demo demo, @MappingTarget DemoDto dto...; import java.io.Serializable; import java.lang.reflect.InvocationTargetException; import java.math.BigDecimal...* @param po po对象 * @param voClass VO的class对象 * @param 具体VO对象的泛型 * @return 返回...= voClass.newInstance(); BeanUtils.copyProperties(vo, po); return vo;
《阿里巴巴Java开发规范》关于领域模型的部分介绍如下 分层领域模型规约: DO(Data Object):此对象与数据库表结构一一对应,通过 DAO 层向上传输数据源对象。...DTO(Data Transfer Object):数据传输对象,Service 或 Manager 向外传输的对象。...POJO是DO/DTO/BO/VO的统称,禁止命名成xxxPOJO。 PO (persistant object )持久对象 可以看成是与数据库中的表相映射的java对象。...到达客户端以后,如果用这个对象来对应界面显示,那此时它的身份就转为VO。...POJO (Plain Old Java Objects) 简单的Java对象 实际就是普通JavaBeans,使用POJO名称是为了避免和EJB混淆起来, 而且简称比较直接.其中有一些属性及其getter
欢迎关注微信公众号:数据科学与艺术 作者WX:superhe199 阿里巴巴Java开发手册中的分层领域模型规约: Query: 数据查询对象,各层接收上层的查询请求。...4) POJO是 DO/DTO/BO/VO的统称,禁止命名成 xxxPOJO。...简单来说,我们不需要把整个PO对象的全部字段传输到客户端,而是可以用DTO重新封装,传递到客户端。此时,如果这个对象用来对应界面的展现,就叫VO。...用法: 不可以继承自 Entity DTO 可以继承、组合其他 DTO,VO,BO 等对象 DTO 只能用于前端、RPC 的请求参数 四、VO(View Object) 视图对象 XxxxVO,用于展示层...用法: 不可继承自 Entity VO 可以继承、组合其他 DTO,VO,BO 等对象 VO 只能用于返回前端、rpc 的业务数据封装对象 五、Query 数据查询对象Query,各层接收上层的查询请求