首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
muyunn
V2EX  ›  程序员

controller 接受的参数是 vo 还是 dto

  •  
  •   muyunn · 52 天前 · 2828 次点击
    这是一个创建于 52 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有没有代码比较规范的 java 后端开源项目

    48 条回复    2020-05-17 00:36:37 +08:00
    chendy
        1
    chendy   52 天前
    controller 的参数用于前后端数据传输,所以是 dto
    asAnotherJack
        2
    asAnotherJack   52 天前
    无知的我悄悄打开搜索引擎查了一下 vo 和 dto 是什么意思
    tangzh55
        3
    tangzh55   52 天前   ❤️ 2
    po 对应表结构一一对应,vo 在表结构基础字段上增减个性化的返回给前端,dto 在表结构基础字段上增减个性化的用于入参
    我们是这样的
    muyunn
        4
    muyunn   52 天前
    哈哈哈
    muyunn
        5
    muyunn   52 天前
    @asAnotherJack 哈哈哈
    muyunn
        6
    muyunn   52 天前
    @chendy 我看到有人说是 vo,糊涂了
    muyunn
        7
    muyunn   52 天前
    @tangzh55 好的,就按照你说的来
    IMCA1024
        8
    IMCA1024   52 天前   ❤️ 1
    emm 。。
    我们是 Controller 接收 XXRequest 类
    然后在 Controller 转成 XXDTO 给 Service
    Service 传 DTO 给 Mapper
    Service 返回 VO 给 controller
    controller 最终返回 XXResponse
    jinzhongyuan
        9
    jinzhongyuan   52 天前
    codergrowing
        10
    codergrowing   52 天前 via Android
    参数我们都是叫* Param,VO 是给前端返回的数据,DTO 仅使用于 service 层
    luckyrayyy
        11
    luckyrayyy   52 天前 via iPhone
    我 controller 入参出参都用的 vo……
    muyunn
        12
    muyunn   52 天前
    @IMCA1024 转糊涂了快😂
    125113483
        13
    125113483   52 天前
    View Object 和 Data Transfer Object 视图对象 就是把页面的参数封装起来 和数据传输对象 就是用于展示层和服务层之间转换。用于 service 层的
    xlui
        14
    xlui   52 天前
    我们一般 rpc 接口用的是 dto,controller 倒是没见过 dto 的用法,vo 居多
    mmdsun
        15
    mmdsun   52 天前 via Android
    Spring Data REST 做的。不过我一直都是直接用实体。
    不知道这样会有什么问题吗?

    主要是不想搞太多 dto,vo (实体从头用到尾。
    xy90321
        16
    xy90321   52 天前 via iPhone
    我司项目里一般管 VO 叫 WebDTO 👻
    peyppicp
        17
    peyppicp   52 天前
    ***Request
    ***Response

    Golang :)
    watzds
        18
    watzds   52 天前 via Android
    VO 到底是 value object 还是 view object ?
    Service 用 DTO 吗
    还有转来转去头疼啊
    freebird1994
        19
    freebird1994   52 天前 via Android
    我们 dto 只用于 rpc 传输,没有 controller 所以没有 vo
    xizismile
        20
    xizismile   52 天前 via Android
    都可以呀,只要这个规范在你们的开发团队统一就行
    v2hh
        21
    v2hh   52 天前
    请求**Request,响应**Response,传输 DTO
    jorneyr
        22
    jorneyr   52 天前
    我们全部是 xxx.bean.Xyz 一把梭,不分 vo dto 等
    gowk
        23
    gowk   52 天前 via Android
    @IMCA1024 传来传去的,不累吗
    coer
        24
    coer   52 天前 via iPad
    我们这 controller 接受的一般叫**param,发给前端的是 vo,dto 用在 service,mapper 查出来的是 model
    voidxx
        25
    voidxx   52 天前 via iPhone
    鄙人习惯用 xxForm,代表表单
    optional
        26
    optional   52 天前 via Android
    叫 xxxRequest 或者 xxInput
    charlie21
        27
    charlie21   52 天前
    muskill
        28
    muskill   52 天前 via iPhone
    @IMCA1024 多此一举啊,直接 DTO,VO 不就完了
    JRay
        29
    JRay   52 天前
    @tangzh55 我目前也是这么使用的,有时候 DTO 和 VO 字段一样就直接重用了
    york7
        30
    york7   52 天前
    我们这边是这样
    DO ( Data Object ):与数据库表结构一一对应,通过 DAO 层向上传输数据源对象。
    DTO ( Data Transfer Object ):数据传输对象,Service 或 Manager 向外传输的对象。
    VO ( View Object ):显示层对象,通常是 Web 向模板渲染引擎层传输的对象。
    vitoliu
        31
    vitoliu   52 天前
    后端给前端 VO,前端给后端 DTO
    hjahgdthab750
        32
    hjahgdthab750   52 天前
    我写 C#时习惯命名为 XXXGetModel,XXXPatchModel,XXXPostModel,XXXModel
    hjahgdthab750
        33
    hjahgdthab750   52 天前
    响应的话,则是 XXXResponseModel,如果简单点直接就是数据表本身 XXXModel
    cruii
        34
    cruii   52 天前
    我也因为这个纠结半个月了,也没找到按照这种开发模型的项目
    zhuweiyou
        35
    zhuweiyou   52 天前
    HashMap 一把梭
    muyunn
        36
    muyunn   52 天前 via iPhone
    @zhuweiyou 哈哈哈,老哥,头铁的很啊
    muyunn
        37
    muyunn   52 天前 via iPhone
    @cruii 是啊,想找个开源项目看看,结果一个都没有
    cfcheng503
        38
    cfcheng503   52 天前
    bo 呢
    Foxkeh
        39
    Foxkeh   52 天前
    mazai
        40
    mazai   52 天前
    controller 接收的肯定是 VO 对象啊,传给 S 层的是 DTO
    ychost
        41
    ychost   52 天前
    没必要 O,一般 DO 可以上,其余的看心情吧
    xuanbg
        42
    xuanbg   52 天前
    严格地讲,接收的参数是 dto,返回的数据是 vo 。但我们有时候图省事就是一个 dto……
    wushigejiajia01
        43
    wushigejiajia01   52 天前 via Android
    这个我去年也纠结过一阵,但是网上搜索没找到啥有用的信息

    最终得出的结论是:只要项目组内部统一用法就完事,这个没有啥规定

    早期项目,我都没用过啥 O

    某些时候,这个转来转去的,麻烦的很
    slyang5
        44
    slyang5   51 天前
    @IMCA1024 你这个很规范了。 嘻嘻
    kylix
        45
    kylix   51 天前
    偷偷的收藏下。。。
    tairan2006
        46
    tairan2006   51 天前 via Android
    组内统一就行
    EminemW
        47
    EminemW   51 天前
    我想知道 pojo 用在什么地方。。还有以 entity 命名的
    muyunn
        48
    muyunn   50 天前
    @EminemW POJO(Plain Ordinary Java Object): 在本规约中,POJO 专指只有 setter/getter/toString 的 简单类,包括 DO/DTO/BO/VO 等。entity 属于 DO(Data Object).---阿里 java 开发手册
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   4339 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 07:45 · PVG 15:45 · LAX 00:45 · JFK 03:45
    ♥ Do have faith in what you're doing.