12款神级 IDEA 插件,让你少写 80% 的代码

  |   0 评论   |   0 浏览

大家好,我一航!

业务功能开发,大部分情况下,业务核心代码差不多只占了项目的20%,剩下的80% 基本就是一些体力活,配置项等;这80%的代码,却消耗了我们大量的时间,然而这部分代码,并不会对我们带来大的提升,今天给大家推荐12款我个人常用的优质的插件,旨在快速帮大家完成这80%体力代码,将更多的时间投入在核心功能的开发,告别加班,告别996!

Easy Code

一个能帮我们快速将表映射成 Spring 项目中 EntityControllerDerviceDaoMapper等文件,快速实现基础功能

插件安装

插件中心搜索 Easy Code 即可快速安装

插件使用

第一步,添加一个数据源,连接对应的数据库

第二步

在数据源中找到对应的表,右键选择 Easy Code,即可快速生成

Easy Javadoc

一款能一键快速帮你生成属性、方法、类文档注释的工具类,文档注释轻松搞定

安装

插件中心搜索 Easy Javadoc

插件需要用到在线翻译,以下是各个平台api key的申请入口,可以根据自己的喜欢,申请对应的key,个人使用的话,每月的免费额度基本都能满足

配置

file -> settings -> other settings - EasyDoc中找到配置界面,分别配置上翻译的api key(必须)、自定义词库映射(可选)、模板信息(可选)

win 快捷键

快捷键作用域说明
ctrl \类、方法、属性(光标放上面就行,不要双击选中!)生成当前文档注释
ctrl \选中的中文生成选中的中文的英文命名
ctrl \选中的非中文弹框展示翻译结果
ctrl shift \生成全部文档注释

mac 快捷键

快捷键作用域说明
command \类、方法、属性(光标放上面就行,不要双击选中!)生成当前文档注释
command \选中的中文生成选中的中文的英文命名
command \选中的非中文弹框展示翻译结果
command shift \生成全部文档注释

其中 "dashabi" 就使用了自定义"小可爱"的映射

问题说明

  • 不翻译

    按了快捷键,只生成了如下的空注释

    /**
    *
    **/
    

    就是翻译配置未生效,可以到各个翻译平台申请一下api key,配置上即可

  • 快捷键无效

    快捷键有可能被其他软件给占用了,可以在 Settings -> Keymap -> Plug-ins -> Easy Javadoc中找到并设置一个新的快捷键

Bito

一款非常实用的智能化聊天机器人插件,集成了GPT,可以为开发人员提供更快更准确的交互编程环境,不用魔法也能使用,能大大提升开发效率,之前也给大家推荐过,详细的使用教程可参考:IDEA 用上这款免费 GPT4 插件,生产力爆表了

aiXcoder

国内首款基于深度学习的智能化软件开发工具,利用AI技术实现代码⾃动⽣成、代码⾃动补全、代码智能搜索等功能,提升开发者开发效率与代码质量

安装

使用

  • 开启云端服务

    这里需要注册账号,登录,按着提示,一步步操作即可

  • 代码补全

Lombok

Lombok 是一款针对 Java 语言的编译时插件,用于通过注解自动化生成重复的代码,减少一些常规的 Java 代码书写。

依赖

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.26</version>
</dependency>

插件

Lombok 不仅需要依赖,还需要安装对应的插件,在插件中心搜索Lombok,安装重启即可

使用

在使用 Lombok 之前,一个对象的get、set、tostring,构造方法等等,写起来还是非常麻烦的,一个简单的对象,就需要写下面这么多代码:

/**
 * @author 公众号:一行Java
 * @title: UserInfo
 * @projectName ehang-spring-boot
 * @description: TODO
 * @date 2023/9/15 9:15
 */
public class UserInfo {

    private String userName;
  
    private Integer age;

    public UserInfo() {
    }

    public UserInfo(String userName, Integer age) {
        this.userName = userName;
        this.age = age;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;

        if (o == null || getClass() != o.getClass()) return false;

        UserInfo userInfo = (UserInfo) o;

        return new EqualsBuilder()
                .append(userName, userInfo.userName)
                .append(age, userInfo.age)
                .isEquals();
    }

    @Override
    public int hashCode() {
        return new HashCodeBuilder(17, 37)
                .append(userName)
                .append(age)
                .toHashCode();
    }

    @Override
    public String toString() {
        return "UserInfo{" +
                "userName='" + userName + '\'' +
                ", age=" + age +
                '}';
    }
}

但一旦引入 Lombok ,这个事情就变的非常简单,三个注解就能实现上面的所有方法,代码也变得非常简洁,清爽;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * @author 公众号:一行Java
 * @title: UserInfo
 * @projectName ehang-spring-boot
 * @description: TODO
 * @date 2023/9/15 9:15
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class UserInfo {

    private String userName;

    private Integer age;

}

Lombok 支持的注解及说明

  1. @Getter / @Setter: 自动生成字段的 getter 和 setter 方法。
  2. @ToString: 自动生成 toString 方法。默认情况下,生成包含所有字段的 toString 方法。
  3. @EqualsAndHashcode: 自动生成 equals 和 hashCode 方法。默认情况下,生成包含所有非静态、非transient 字段的 equals 和 hashCode 方法。
  4. @NoArgsConstructor / @RequiredArgsConstructor / @AllArgsConstructor: 自动生成无参构造方法、必须参数构造方法、全参构造方法。
  5. @Data: 自动生成 getter、setter、equals、hashCode、toString 方法。
  6. @Builder: 自动生成建造者模式的代码,用于创建复杂对象。
  7. @Log: 自动生成日志记录变量,支持不同的日志框架,例如 @Slf4j 用于集成 SLF4J。
  8. @NoArgsConstructor(force = true) / @AllArgsConstructor(force = true): 自动生成无参构造方法、全参构造方法,并将字段设置为 final。
  9. @Cleanup: 自动管理资源,主要用于清除需要手动释放的资源,例如 IO 流。
  10. @SneakyThrows: 在方法体中自动捕捉并重新抛出异常,无需显式地进行异常处理。
  11. @NonNull: 生成非空检查代码。
  12. @Accessors: 提供链式调用风格的 setter 和 getter 方法。
  13. @Value: 创建不可变类,字段为 final,并自动生成 getter 方法。
  14. @Wither: 自动生成属性的不可变更新方法。
  15. @EqualsAndHashCode(callSuper = true): 生成包含父类字段的 equals 和 hashCode 方法。

被禁用Lombok

当你所在的公司/团队禁止使用 Lombok 插件,只允许使用传统的方式来写get、set、toString这些基础方法,有没有方式能快速生成这些繁琐的体力活儿呢?IDEA 其实已经帮我们内置了快速生成这些方法的功能;

按下快捷键 Alt + Insert

或者在对象中点击鼠标右键,选择 Generate...

选择你要生成的内容,就能快速生成对应的方法

GsonFormatPlus

一款用于快速将 Json 转换成 Java 对象的插件;现在的系统,前后端交互,绝大部分都使用了 Json ,因此在解析 Json 的时候,都需要一个对象来接受,使用这块工具,就可以通过 Json 文本,快速生成一个用于接受的 Java 对象,省去了逐个手敲属性的繁琐体力;

安装插件

在插件中心搜索 GsonFormatPlus,安装即可;

使用

使用快捷键:Alt + S

或者使用 Alt + Insert,然后选择 GsonFormatPlus

又或者,在对象中点击鼠标右键,选择 Generate,再选择 GsonFormatPlus

左侧粘贴 Json 文本,点击 OK ,选择要生成的属性,下一步即可完成

GenerateAllSetter

一款一键调用set、get方法的插件;当开发中遇到一个大对象需要初始化,或者要获取一个大对象中的属性时,就单纯是调用他的get、set方法,就能让人写的人手软,这款插件就能完美的帮我们解决这个体力活。

插件安装

插件使用

  • 一键调用set,get方法

    首先,鼠标的光标放在对象所处的行

    然后使用快捷键 Alt + Enter,选择是生成get还是set,几个生成,set的生成有两种方式,一种是不赋值,一种是赋予属性的默认值,可以根据自己的实际情况来定:

  • 一键转换对象

    当我们需要做对象转换时,比如,模型对象转换成 DTO 对象,也可以借助这个插件一键生成

String Manipulation

日常开发,String 是使用最为频繁的数据类型,String Manipulation 插件能帮我们快速完成 String 的转换,如:大小写切换,排序,递增,转义,编码等。还支持对字符串的各种加、解密(MD5、Base64等)操作;基本包含了 String 常用的所有操作

安装

快捷键

Alt + m

使用

以下是驼峰命名转换、加解密、大小写转换的示例

还有更多的功能,可以根据自己的需要来选用

Restfultoolkit

一套 RESTful 服务开发辅助工具集,完美代替Postman;在 IDEA 中即可完成接口的测试,同时也能快速所搜接口,大大提高我们的检索,测试效率。

安装

插件中心搜索 Restfultoolkit 即可快速安装

快捷键

Ctrl + Alt + N

使用

  • 快速搜索接口

    当有Bug的时候,后端开发人员可能经常需要根据接口名称/地址来找到接口位置,全局的搜索 Ctrl + Shift + R 是搜索的所有内容,要筛选出想要的内容还挺麻烦的;如果是自己写的代码,找起来也还能接受,一旦项目大,代码不熟悉,就如同大海捞针;那么就可以借助这个工具,来快速搜索接口,快捷键:Ctrl + Alt + N

  • 接口测试

    右侧的菜单中包含了项目中的所有接口,可以直接编辑请求对象快速发起接口测试

  • 对象转Json

    前面介绍了如何将 Json 串转换成 Java 对象,借助这个插件,就能快速将对象转换成 Json 文本串

Key promoter X

当年,从 Eclipse 转 IDEA 的时候,快捷键就是最大的障碍之一;能灵活的使用快捷键,将能大大提高编码的效率;Key promoter X 就是一款能协助记忆快捷键的插件

安装

插件中心搜索 Key promoter X 即可

效果

当你没使用快件操作某个功能时,插件就会提醒你其对应的快捷键是什么

Free Mybatis plugin

一款能帮助我们在 MyBatis 中实现 Mapper 与 xml 之间跳转的插件

安装

插件中心搜索 Free Mybatis plugin

使用


熟练运用这12款插件,不出意外,相信大家的开发效率一定会有一个质的飞跃...