推广一下自己刚撸的 IDEA 插件Bean Copy 助手 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
Aresxue
V2EX    Java

推广一下自己刚撸的 IDEA 插件Bean Copy 助手

  •  1
     
  •   Aresxue Oct 14, 2025 2661 views
    This topic created in 198 days ago, the information mentioned may be changed or developed.

    插件名称:bean-copy-helper

    插件地址:https://plugins.jetbrains.com/plugin/28686-bean-copy-helper
    源码地址:https://github.com/Aresxue/bean-copy-helper

    安装方式:在 Settings -> Plugins -> Marketplace 中输入 bean-copy-helper 检索即可找到该插件

    这个插件一开始主要是写给自己用的,在阅读代码和排查 bug 的时候发现有很多项目使用了 Bean Copy ,Bean Copy 有时候确实很好用, 但是它也会带来一些困扰比如源对象通过 Bean Copy 赋值给目标对象以后通过 IDEA 的引用是找不到字段读取和写入( Bean Copy )的地方的,这个插件可以解决这个问题



    可以看到我们可以对于Getter/Setter 方法或者字段使用属性复制范围查找,会认为一次 Bean Copy 是对源对象和目标对象同名且同类型的字段读取和写入(对于源对象来说是读取对于目标对象来说是写入)

    为了避免对原有方法引用的污染所以采用类似Find Usages的方式,这样在跟踪某个字段的读取/写入时再也不会因为 Bean Copy 而被阻断了!!!

    除此之外 Bean Copy 还经常被误用,这里也会对其做一些风险识别




    最典型的场景就是同名字段类型不一致,实际上这个字段是没法被 Copy 过去的!!!

    除此之外还集成了其它一些功能

    可以预览源类和目标类属性的对比并生成相应注释

    预览生成属性复制对应的Getter/Setter 代码


    可以预览源类和目标类复制成功的属性并生成相应注释


    而且使用中我常常发现字体时大时小有时候几乎无法观看,所以开放了字体大小自定义大家可自行修改

    本插件永久免费,有需要的小伙伴自取。

    Supplement 1    Oct 16, 2025
    插件仅有 77kb 无任何外部依赖,而且只有基本上指定 action 才触发对应展示,开销极低。
    9 replies    2025-12-12 15:28:28 +08:00
    MRlaopeng
        1
    MRlaopeng  
       Oct 15, 2025   1
    牛逼
    PeiXyJ
        2
    PeiXyJ  
       Oct 15, 2025
    不错 解决了我的痛点,之前也有这样的插件但是不更新了 25 版 idea 无法使用了...您的我试试
    Aresxue
        3
    Aresxue  
    OP
       Oct 15, 2025
    @PeiXyJ 是指哪个?我看之前的插件基本上没有可以支持 Fing Usages 的所以才自己撸了一个
    AceCandy
        4
    AceCandy  
       Oct 15, 2025
    能支持本身的 cmd+左键这种吗
    Aresxue
        5
    Aresxue  
    OP
       Oct 16, 2025
    @AceCandy 这种会对原有的引用关系有污染,所以考虑了一下暂时没有做,后续有时间会实现掉同时会新增一个开关来控制这个行为,你如果感兴趣的话可以 https://github.com/Aresxue/bean-copy-helper fork 一下贡献个 PR 或者自己按照自己的喜好随意修改。
    ywcjxf1515
        6
    ywcjxf1515  
       Oct 24, 2025 via Android
    支持自定义复制工具类及其方法吗
    我们使用时会把 beanutil 封装一下
    Aresxue
        7
    Aresxue  
    OP
       Oct 27, 2025
    方法名叫 copyProperties 也可以,其它的话就是要精准匹配 org.springframework.beans.BeanUtils 、org.springframework.cglib.beans.BeanCopier 、org.apache.commons.beanutils.BeanUtils 、cn.hutool.core.bean.BeanUtil 这几个了。
    chenjloveslife1
        8
    chenjloveslife1  
       Dec 10, 2025
    可以支持 cn.hutool.core.bean.BeanUtil 的 toBean 等方法吗
    Aresxue
        9
    Aresxue  
    OP
       Dec 12, 2025
    @chenjloveslife1 https://github.com/Aresxue/bean-copy-helper 提个 issue 给我,我周末有时间就支持掉。
    About     Help     Advertise     Blog     API     FAQ     Solana     2500 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 54ms UTC 03:52 PVG 11:52 LAX 20:52 JFK 23:52
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86