牛掰,在IDEA中,你可以安装小傅哥写的插件了!
作者:小傅哥
博客:https://bugstack.cn
沉淀、分享、成长,让自己和他人都能有所收获!
一、承认你优秀很难
很多码农,把路走窄了
捧一个,喷一个,很多码农都不会多一点思路看问题,总是喜欢用矛和盾在显示自己有点本事
。Github 你写文章说你不如做开源代码有价值,你写了开源代码说你这没有意义,那你问他贡献了啥,他只贡献了嘴。聊理论吹的叮当的,写代码搞的稀得囊的
- 好在,你这一路上能遇到很多
同好
,他们能真诚的给你意见、提供思路、帮助解决,让你们一群有技术初心的人,不断的成长。 - 这可能就是技术创作的土壤,如果大家都不施肥,反而还要过来用力的踩踩这块地,那最后大家都只能一起卷死在这,谁也不要创新。加油,我希望你可以和我一起做点事情
二、写了个什么插件
最近一个月多都在折腾关于 IDEA Plugin 插件开发的案例编写技术总结,在日常编码开发和折腾插件技术过程中发现一个痛点
。
日常编码的过程中有太多的 vo2dto 对象转换操作,尤其是在 DDD 架构下多了不少的防腐层,而这层之间的对象 po、vo、do、dto,总是需要被转换,而使用 BeanUtils 多了,以后增改字段名都不知道影响到哪。
当然也有不错的工具 MapStruct 既可以保证性能又有不错的效率,但它需要给每一个转换对象维护对应的转换类,对于接口层的转换还是非常适合的,但那些很小的方法块内,也是如此折腾就显得有些麻烦了。
所以,小傅哥结合 IDEA Plugin 插件开发的能力,通过鼠标定位到转换对象上,一键织入需要生成一堆的 x.set(y.get)
方法,并且在几次优化中以及可以支持父类对象、lombok插件。演示图如下:
- 支持:复制一个对象,光标定位另外一个对象上,鼠标右键 Generate -> Vo2Dto 一键生成转换代码
- 支持:不复制对象,直接在转换可以生成空的 set 对象,方便自由添加内容
- 支持:插件中通过注解检测的方式,允许使用 lombok
三、发布插件的经历
原来不用英文描述,不给我过
1. 请用英语描述
- 这是我第一次发布插件接收到的邮件提醒,告诉我在你的 plugin.xml 中,要用英语描述。一直没看,以为垃圾邮件
2. 请用英文截图
- 告诉我,你的截图要用英语的,这样我才能给你通过。
3. 说我截图没用
- 问我你确定需要这个截图吗,他觉得没啥意义
4. 终于发布出去
- 改了注释、删了截图,终于迎来曙光。你说,不发布一次,你会知道遇到这些吗!
四、把这插件安排上
1. 安装插件
讲到这我就兴奋了!
为啥兴奋,因为这一个插件发布,我整整等了2周,因为一次修改就要2个工作日才能审核,所以上面我犯的错,都是用时间磨出来。
不过现在好了,你可以直接在 IDEA 中搜索安装小傅哥写的插件了,哈哈哈,这种没做过的事搞一次,总是让人很兴奋!
- 看到能搜索到 vo2dto 并顺利安装使用,我的心舒服了。没有人能阻挡你最技术的热爱,即使你来我这踩两脚
2. 使用介绍
如图所示,你只需要很简单的步骤,既可以快速且准确的帮你生成对应的转换代码,在一些场景里使用还是非常 Good
的!操作步骤:
- 复制对象
UserDto userDto
这个是被转换对象,复制后才能便于生成获取属性的代码。如果你不复制,那么就是生成空代码 - 定位对象
User usxxer
把光标定位到对象或属性上,点击 Generate -> Vo2Dto 这样就可以把你的对象生成出来了。 - 注意:支持 lombok、支持继承对象,如果你在使用过程中遇到其他需求或者问题,都可以反馈给我
3. 源码共享
- 源码:https://github.com/fuzhengwei/vo2dto
- 说明:有同好的技术人共建才会让一件小事不断的优秀起来,所以我把这块代码共享出来,我们可以一起做一个非常短小精致的产品,来帮助我们自己完成一些便捷的开发处理。
五、我确定挺倔强
有一种倔强可能也是天生的,我喜欢技术、喜欢折腾、喜欢简单干净的事情,并把我认准的事长久坚持下去。有时候我也知道另外一条路会更轻松、更有钱拿,但那并不是我的内心,只有我认识到的我才是我,否则强加给我的我,始终不会是我。
牛掰,在IDEA中,你可以安装小傅哥写的插件了!的更多相关文章
- ElasticSearch搜索引擎安装配置中文分词器IK插件
近几篇ElasticSearch系列: 1.阿里云服务器Linux系统安装配置ElasticSearch搜索引擎 2.Linux系统中ElasticSearch搜索引擎安装配置Head插件 3.Ela ...
- Jackson:我是最牛掰的 Java JSON 解析器(有点虚)
在当今的编程世界里,JSON 已经成为将信息从客户端传输到服务器端的首选协议,可以好不夸张的说,XML 就是那个被拍死在沙滩上的前浪. 很不幸的是,JDK 没有 JSON 库,不知道为什么不搞一下.L ...
- 苹果mac电脑中brew的安装使用及卸载详细教程
brew 又叫Homebrew,是Mac OSX上的软件包管理工具,能在Mac中方便的安装软件或者卸载软件, 只需要一个命令, 非常方便 brew类似ubuntu系统下的apt-get的功能 安装br ...
- mac中使用brew安装软件,下载太慢怎么办?
mac中使用brew安装软件,下载太慢怎么办? 本文所说的软件是指较大的软件,如果软件较小,例如软件只有几M,那么使用此方法后,提升会非常小. 了解brew原理: 1: 从网络下载安装包 2: 执行一 ...
- eclipse中jsp文档无语法着色,安装Eclipse Java Web Developer Tools插件
一.安装Eclipse Java Web Developer Tools插件 1.eclipse菜单:help/install New Software,打开Available Software窗体: ...
- CentOs中mysql的安装与配置
在linux中安装数据库首选MySQL,Mysql数据库的第一个版本就是发行在Linux系统上,其他选择还可以有postgreSQL,oracle等 在Linux上安装mysql数据库,我们可以去其官 ...
- 腾讯云Linux系统中启动自己安装的tomcat
腾讯云Linux系统中启动自己安装的tomcat 首先通过工具查看一下安装的tomcat的位置 进入命令行之后输入以下指令: 此时,tomcat已经启动了.
- Ubuntu 中软件的安装、卸载以及查看的方法总结
Ubuntu 中软件的安装.卸载以及查看的方法总结 博客分类: Linux UbuntuDebian配置管理CacheF# 说明:由于图形化界面方法(如Add/Remove... 和Synaptic ...
- 在linux中使用phpize安装php扩展模块
介绍:linux系统中,php安装成功后,在bin目录下会生成一个名叫phpize的可执行脚本,这个脚本的用途是动态安装php扩展模块.使用phpize脚本安装php扩展模块的好处:在安装php时没有 ...
随机推荐
- Linux常用命令之文件权限管理
Linux文件权限管理1.改变文件或目录的权限:chmod命令详解命令名称:chmod命令所在路径:/bin/chmod执行权限:所有用户语法:chmod [{ugoa}{+-=}{rwx}] [文件 ...
- tomcat 之 session服务器 (memcache)
#: 在tomcat各节点安装memcached [root@node1 ~]# yum install memcached -y #: 下载tomcat所需的jar包(此处在视频中找软件) [roo ...
- 【Linux】【Shell】【Basic】数组
1. 数组: 变量:存储单个元素的内存空间: 数组:存储多个元素的连续的内存空间: 数组名:整个数组只有一个名字: 数组 ...
- 【Java 与数据库】JDBC中日期时间的处理技巧
JDBC中日期时间的处理技巧 详谈Java.util.Date和Java.sql.Date 基础知识 Java中用类java.util.Date对日期/时间做了封装,此类提供了对年.月.日.时.分.秒 ...
- 03 - Vue3 UI Framework - 首页
顶部边栏做完了,接下来开始做官网的首页 返回阅读列表点击 这里 创建视图文件夹 让我们先新建一个 src/views 文件夹,用来存放官网的主要视图 然后在该文件夹下新建两个 vue 文件,作为我们的 ...
- mysqlslap基准测试
目录 简介 二.例子 三.其它选项 简介 mysqlslap是mysql自带的基准测试工具 优点:查询数据,语法简单,灵活容易使用.该工具可以模拟多个客户端同时并发的向服务器发出查询更新,给出了性能测 ...
- Jenkins构建通知
目录 一.简介 二.推送到gitlab 三.邮件通知 自带配置 Email Extension 四.钉钉通知 五.脚本钉钉通知 六.HTTP请求通知 一.简介 类似于监控报警,jenkins在配置持续 ...
- WHUCTF PWN题目
花了大概两天时间来做WHUCTF的题目,第一次排名这么靠前.首先感谢武汉大学举办这次萌新赛,也感谢fmyy的师傅的耐心指导,让我第一次做出堆的题目来. pwnpwnpwn 这是一道栈题目,32位程序, ...
- 突破类型限制的“数据透视图”(Excel技巧集团)
Excel中,图表一共16个大类,但是数据透视图却被"阉"了好几个-- 这也就是说,数据透视图无法与上图中高亮标出的图表类型并存了? 确实如此,但并不绝对,因为我们可以在" ...
- 静态日志框架Extensioner.Logging
静态日志框架,输出文本文件,基于log4net扩展,轻量,方便,无侵入! 使用方法 执行Install-Package Extensioner.Logging -Version 2.0.0导入Nuge ...