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

有没有工具能够自动生成 VO, DO, DTO

  •  
  •   Replux · 2020-01-23 17:35:35 +08:00 via iPhone · 4887 次点击
    这是一个创建于 1768 天前的主题,其中的信息可能已经有所发展或是发生改变。

    感觉写业务代码的时候经常要对一个 pojo 写一大堆的映射类,使得文件太多了。有没有啥工具能像 lombok 一样自动生成这些 vo dto do 的?

    12 条回复    2020-01-23 23:27:39 +08:00
    vigack
        1
    vigack  
       2020-01-23 18:24:53 +08:00 via iPhone   ❤️ 1
    Querydsl+Mapstruct
    Replux
        2
    Replux  
    OP
       2020-01-23 20:03:52 +08:00 via iPhone
    @vigack mapstruct 这个工具只是生成一个实现了实体映射函数的实现类,不是我想要的
    sufan1206
        3
    sufan1206  
       2020-01-23 20:14:09 +08:00 via iPhone
    写一个代码生成器,或者找开源的自己改,原理就是模版渲染
    WispZhan
        4
    WispZhan  
       2020-01-23 20:18:22 +08:00
    充血模型 + GraphQL,贫血模型终将死去……
    KentY
        5
    KentY  
       2020-01-23 20:47:05 +08:00
    @WispZhan 我基本能理解提问中的问题以及描述, 通览寥寥回答, 也明晓其意.
    然而到您这个回答, 完全不知所云. 忙 google 求解.尚知充血, 贫血, 仍有一"领域模型"之译文由来.
    不由掩面忍俊不禁.
    Replux
        6
    Replux  
    OP
       2020-01-23 21:07:36 +08:00 via iPhone
    @sufan1206 代码生成器是个折中的选择但是很实用的方法。如果有个类库能像 lombok 一样自动生成这些模型就好了。
    Replux
        7
    Replux  
    OP
       2020-01-23 21:11:24 +08:00 via iPhone
    @sufan1206 其实我的根本诉求还是因为希望减少实体映射类,让这些东西在编译期自动生成
    kaneg
        8
    kaneg  
       2020-01-23 22:16:28 +08:00 via iPhone
    你提到 Lombok,那是什么原因不选择它呢?我在一个新项目里想用,但是怕在 IDE 里没有 get/set 方法的代码提示,一堆飘红,毕竟这货是需要编译期才生成方法的
    sufan1206
        9
    sufan1206  
       2020-01-23 22:20:31 +08:00 via iPhone
    @Replux 那就自己写插件吧,原理就那些,大概率有相关轮子了
    ace12
        10
    ace12  
       2020-01-23 22:43:54 +08:00
    @kaneg 哥,有插件
    Replux
        11
    Replux  
    OP
       2020-01-23 23:26:47 +08:00 via iPhone
    @kaneg lombok 中能生成 getter 和 setter,我的需求是生成新的类
    Replux
        12
    Replux  
    OP
       2020-01-23 23:27:39 +08:00 via iPhone
    @sufan1206 好的,刚才网上搜了下 没看到现有的工具,打算开始自己写一个了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1045 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 19:33 · PVG 03:33 · LAX 11:33 · JFK 14:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.