当前位置: 首页 > news >正文

po、dto、vo的使用场景

现在项目中有两类模型类:DTO数据传输对象、PO持久化对象,DTO用于接口层向业务层之间传输数据,PO用于业务层与持久层之间传输数据,有些项目还会设置VO对象,VO对象用在前端与接口层之间传输数据,如下图:

当前端有多个平台且接口存在差异时就需要设置VO对象用于前端和接口层传输数据。

比如:

课程列表查询接口,根据需求用户在手机端也要查询课程信息,此时课程查询接口是否需要编写手机端和PC端两个接口呢?如果用户要求通过手机和PC的查询条件或查询结果不一样,此时就需要定义两个Controller课程查询接口,每个接口定义VO对象与前端传输数据。

手机查询:根据课程状态查询,查询结果只有课程名称和课程状态。

PC查询:可以根据课程名称、课程状态、课程审核状态等条件查询,查询结果也比手机查询结果内容多。

此时,Service业务层尽量提供一个业务接口,即使两个前端接口需要的数据不一样,Service可以提供一个最全查询结果,由Controller进行数据整合。

如下图:

如果前端的接口没有多样性且比较固定,此时可以取消VO,只用DTO即可。

如下图:

相关文章:

po、dto、vo的使用场景

现在项目中有两类模型类:DTO数据传输对象、PO持久化对象,DTO用于接口层向业务层之间传输数据,PO用于业务层与持久层之间传输数据,有些项目还会设置VO对象,VO对象用在前端与接口层之间传输数据,如下图&#…...

聊一聊Elasticsearch的一些基本信息

一、Elasticsearch是什么 Elasticsearch简称ES,是一款分布式搜索引擎。它是在Apache Lucene基础之上采用Java语言开发的。 Elasticsearch的官方网站对它的解释是:Elasticsearch是一个分布式、RESTful的搜索和数据分析引擎。 通过上边的官方解释&#…...

Unity 两篇文章熟悉所有编辑器拓展关键类 (上)

本专栏基础资源来自唐老狮和siki学院,仅作学习交流使用,不作任何商业用途,吃水不忘打井人,谨遵教诲 编辑器扩展内容实在是太多太多了(本篇就有五千字) 所以分为两个篇章而且只用一些常用api举例&#xff0c…...

Spring SPI、Solon SPI 有点儿像(Maven 与 Gradle)

一、什么是 SPI SPI 全名 Service Provider interface,翻译过来就是“服务提供接口”。基本效果是,申明一个接口,然后通过配置获取它的实现,进而实现动态扩展。 Java SPI 是 JDK 内置的一种动态加载扩展点的实现。 一般的业务代…...

合并排序算法(C语言版)

#include <stdio.h> void Copy(int *a, int *b, int left, int right) { int i; for(i0;i<right-left1;i) { a[ileft] b[i]; } } // 将 a[left,middle] 和 a[middle1,right]合并到 b[left, right]中 void Merge(int *a, int left, int midd…...

C++——输入一行文字,找出其中的大写字母、小写字母、空格数字以及其他字符各有多少。用指针或引用方法处理。

没注释的源代码 #include <iostream> using namespace std; int main() { char c; int ul0,ll0,sp0,di0,other0; cout<<"please input script c:"; while(cin.get(c)) { if(c\n) break; else if(c>A&&…...

【skywalking】maximum query complexity exceeded 3336 > 3000

问题 skywalking相关版本信息 jdk&#xff1a;17skywalking&#xff1a;10.1.0apache-skywalking-java-agent&#xff1a;9.3.0ElasticSearch : 8.8.2 问题描述 maximum query complexity exceeded 3336 > 3000 最大查询复杂度超过3336>3000 可能原因 查询条件过于复…...

开源一个开发的聊天应用与AI开发框架,集成 ChatGPT,支持私有部署的源码

大家好&#xff0c;我是一颗甜苞谷&#xff0c;今天分享一个开发的聊天应用与AI开发框架&#xff0c;集成 ChatGPT&#xff0c;支持私有部署的源码。 介绍 当前系统集成了ChatGPT的聊天应用&#xff0c;不仅提供了基本的即时通讯功能&#xff0c;还引入了先进的AI技术&#x…...

开发了一个成人学位英语助考微信小程序

微信小程序名称&#xff1a;石榴英语 全称&#xff1a;石榴英语真题助手 功能定位 北京成人学士学位英语辅助学习工具&#xff0c;包含记高频单词&#xff0c;高频词组&#xff0c;专项练习&#xff0c;模拟考试等功能。 开发背景 个人工作需要提高学习英文水平&#xff…...

LeetCode16:最接近的三数之和

原题地址&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 题目描述 给你一个长度为 n 的整数数组 nums 和 一个目标值 target。请你从 nums 中选出三个整数&#xff0c;使它们的和与 target 最接近。 返回这三个数的和。 假定每组输入只存在恰好一个解。 示例 1&#xf…...

VisualStudio2022配置2D图形库SFML

文章目录 1. 下载安装SFML库2. 创建C项目并配置SFML配置include目录和库目录链接SFML库配置动态链接库 3. 测试 1. 下载安装SFML库 SFML&#xff08;Simple and Fast Multimedia Library&#xff09;C库&#xff0c;适合2D游戏和图形界面&#xff0c;提供了以下模块&#xff1…...

「Mac畅玩鸿蒙与硬件4」鸿蒙开发环境配置篇4 - DevEco Studio 高效使用技巧

本篇将进一步介绍如何在 DevEco Studio 中高效使用各种功能&#xff0c;通过掌握快捷键、代码补全、调试工具等&#xff0c;帮助开发者在鸿蒙应用开发中大幅提升工作效率。 关键词 DevEco Studio快捷键代码补全调试工具项目导航 一、快捷键与高效操作 快捷键是提升开发效率的…...

构建生产级的 RAG 系统

对 RAG 应用程序进行原型设计很容易&#xff0c;但要使其高性能、健壮且可扩展到大型知识语料库却很困难。 本指南包含各种提示和技巧&#xff0c;以提高 RAG 工作流程的性能。我们首先概述一些通用技术 - 它们按照简单到复杂的顺序进行排列。然后&#xff0c;我们将更深入地研…...

完全透彻了解一个asp.net core MVC项目模板2

这是《完全透彻了解一个asp.net core MVC项目模板》的第二篇&#xff0c;如果你直接进入了本篇博文而不知道上下文&#xff0c;请先阅读《完全透彻了解一个asp.net core MVC项目模板》的第一篇。 文章目录 一、补充几个问题1、有关导航链接和Tag Helper2、_ViewStart.cshtml与…...

uniapp 如何调用音频

uniapp调用音频 button点击 <view><button click"startPlay">开始播放</button></view>方法实现 startPlay() { const innerAudioContext uni.createInnerAudioContext();innerAudioContext.src /static/sounds/oqc.mp3;innerAudioContex…...

在Facebook运营中使用住宅IP的重要性

在当前社交媒体的浪潮中&#xff0c;Facebook作为全球最大的社交网络之一&#xff0c;吸引了数以亿计的用户。为了在这一平台上实现有效的运营和推广&#xff0c;越来越多的博主和营销人员正在寻求最佳的养号策略。其中&#xff0c;IP地址的选择显得尤为重要&#xff0c;尤其是…...

EJB项目如何升级SpringCloud

记录某金融机构老项目重构升级为微服务过程1 如何从EJB架构拆分微服务 这个非常有趣的过程&#xff0c;整个过程耗时大致接近半年时光&#xff0c;需要考虑到重构升级保留原来的业务线&#xff0c;而且还要考虑后续的维护成本&#xff0c;保留现有的数据库表结构&#xff0c;…...

HTTPS 协议原理

一.HTTPS的定义 大家在刚开始学习的时候是不是也是非常好奇HTTP与HTTPS之间有什么区别和联系&#xff0c;两者都是应用层协议&#xff0c;而HTTPS是在HTTP的基础上引入了加密层&#xff0c;从而将HTTP的明文传输进行加密&#xff0c;保障数据的安全性 二.加密与解密 定义&#…...

Vxe UI 表格行编辑(默认不显示编辑框,点击后可编辑)

效果: HTML代码:(type"integer"为这个,是限制只能输入正整数或负整数,英文和汉字自动转成0) <vxe-tableshow-overflowkeep-sourcev-loading"loading":data"ruleList"ref"Table":row-config"{isHover: true}"height"…...

移远通信闪耀2024香港秋灯展,以丰富的Matter产品及方案推动智能家居产业发展

10月27-30日&#xff0c;2024香港国际秋季灯饰展在香港会议展览中心盛大开展。 作为全球领先的物联网整体解决方案供应商&#xff0c;移远通信再次亮相&#xff0c;并重点展示了旗下支持Matter协议以及亚马逊ACK ( Alexa Connect Kit ) SDK for Matter方案的Wi-Fi模组、低功耗蓝…...

Pencil:重新定义设计与开发的边界

&#x1f3a8; Pencil&#xff1a;重新定义设计与开发的边界 更多问题讨论和资料获取&#xff0c;请关注文章最后的微信公众号 当"设计即代码"成为现实&#xff0c;前端开发者的工作流正在经历一场革命 &#x1f4d6; 什么是 Pencil&#xff1f; 如果你是一名前端开…...

PX4飞控系统深度探索:如何用开源技术打造智能无人机控制大脑

PX4飞控系统深度探索&#xff1a;如何用开源技术打造智能无人机控制大脑 【免费下载链接】PX4-Autopilot PX4 Autopilot Software 项目地址: https://gitcode.com/gh_mirrors/px/PX4-Autopilot 想象一下&#xff0c;你正站在一片开阔的试验场上&#xff0c;手里握着一架…...

PowerBuilder老系统维护指南:PB12.5连接现代数据库(如MySQL 8.0)的避坑实操

PowerBuilder老系统维护实战&#xff1a;PB12.5连接MySQL 8.0的七个关键步骤 当技术栈的代际差异超过十年&#xff0c;每一次数据库连接尝试都可能演变成一场跨越时空的调试马拉松。那些在2006年运行良好的PB12.5应用&#xff0c;今天面对MySQL 8.0的SSL加密要求和UTF8MB4字符集…...

Python多线程真能并行了吗?(GIL绕过技术全图谱:subprocess/numba/multiprocessing/cython/rustpy)

第一章&#xff1a;Python无锁GIL环境下的并发模型面试题汇总Python 的全局解释器锁&#xff08;GIL&#xff09;长期被视为多线程并发的瓶颈&#xff0c;但近年来随着 CPython 3.13 引入实验性无锁 GIL&#xff08;--without-pymalloc 配合 --with-per-object-gil 原型&#x…...

STM32智能婴儿床系统设计与实现

基于STM32的智能婴儿床系统设计1. 项目概述1.1 系统架构本智能婴儿床系统采用模块化设计架构&#xff0c;以STM32F103RCT6微控制器为核心处理单元&#xff0c;集成多种传感器模块和执行机构。系统通过蓝牙与手机APP建立双向通信&#xff0c;实现环境参数监测、异常报警和远程控…...

OpenOCD入门到精通:第23章 添加新的 JTAG 适配器驱动

第23章 添加新的 JTAG 适配器驱动 导读摘要:OpenOCD 支持 40 余种调试适配器,每种适配器背后都有一个遵循统一接口规范的驱动程序。本章从 adapter_driver 结构体出发,逐一解析其回调函数语义,介绍 libusb/HIDAPI 通信层封装,并通过一个完整的简易驱动实现示例,帮助读者掌…...

Shield CLI:MySQL 插件 vs phpMyAdmin:轻量 Web 数据库管理工具对比

phpMyAdmin 是 MySQL Web 管理的事实标准&#xff0c;1998 年发布至今&#xff0c;功能覆盖面极广。但在"查个数据、改个表、看看关系"这类日常场景下&#xff0c;它的部署成本和界面复杂度显得有些过重。Shield CLI MySQL 插件是一个 7MB 的单二进制 Web 客户端&…...

六边形地理索引的终极指南:H3算法如何革新空间数据分析

六边形地理索引的终极指南&#xff1a;H3算法如何革新空间数据分析 【免费下载链接】h3 Hexagonal hierarchical geospatial indexing system 项目地址: https://gitcode.com/gh_mirrors/h3/h3 你是否曾为处理大规模地理空间数据而头疼&#xff1f;传统的地理索引系统在…...

OneAgent智能体全球发布会圆满落幕:引领金融AI交易新时代

2026年3月25日&#xff0c;聚焦金融AI领域的盛会《OneAgent智能体全球产品发布会》在中国杭州成功落幕。本次发布会吸引了全球金融科技领域的行业专家、投资机构以及技术爱好者的关注&#xff0c;标志着OneAgent在全球AI金融市场的战略布局正式启动。AI原生对冲交易新物种&…...

PyTorch 2.8镜像一文详解:CUDA 12.4兼容性、cuDNN版本匹配与驱动升级要点

PyTorch 2.8镜像一文详解&#xff1a;CUDA 12.4兼容性、cuDNN版本匹配与驱动升级要点 1. 镜像概述与核心特性 PyTorch 2.8深度学习镜像是一个专为高性能计算设计的优化环境&#xff0c;基于RTX 4090D 24GB显卡和CUDA 12.4深度调优。这个镜像解决了深度学习开发者经常遇到的环…...