前言
这里主要介绍我平常真正用到且比较好用的idea插件,方便大家加快开发效率,部分图片gif借鉴自网络,虽然大多也有很多博客介绍过,但在公司技术分享时发现不管是新人和老人完全不知道这些插件,所以做了整理
一、功能性插件
1.lombok (项目必备)
支持lombok的各种注解,从此不用写getter setter这些 可以把注解还原为原本的java代码 非常方便。
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>版本</version>
<scope>provided</scope>
</dependency>
1.1.@Data
@Data注解在类上,会为类的所有属性自动生成setter/getter、equals、canEqual、hashCode、toString方法,如为final属性,则不会为该属性生成setter方法。
1.2.@Getter/@Setter
如果觉得@Data太过残暴(因为@Data集合了@ToString、@EqualsAndHashCode、@Getter/@Setter、@RequiredArgsConstructor的所有特性)不够精细,可以使用@Getter/@Setter注解,此注解在属性上,可以为相应的属性自动生成Getter/Setter方法,
1.3.@NonNull
该注解用在属性或构造器上,Lombok会生成一个非空的声明,可用于校验参数,能帮助避免空指针。
示例如下:
import lombok.NonNull;
public class NonNullExample{
private String name;
public NonNullExample(@NonNull Person person) {
this.name = person.getName();
}
}
1.4.@Cleanup
该注解能帮助我们自动调用close()方法,很大的简化了代码。
示例如下:
import lombok.Cleanup;
import java.io.*;
public class CleanupExample {
public static void main(String[] args) throws IOException {
@Cleanup InputStream in = new FileInputStream(args[0]);
@Cleanup OutputStream out = new FileOutputStream(args[1]);
byte[] b = new byte[10000];
while (true) {
int r = in.read(b);
if (r == -1) break;
out.write(b, 0, r);
}
}
}
如不使用Lombok,则需如下:
import java.io.*;
public class CleanupExample {
public static void main(String[] args) throws IOException {
InputStream in = new FileInputStream(args[0]);
try {
OutputStream out = new FileOutputStream(args[1]);
try {
byte[] b = new byte[10000];
while (true) {
int r = in.read(b);
if (r == -1) break;
out.write(b, 0, r);
}
} finally {
if (out != null) {
out.close();
}
}
} finally {
if (in != null) {
in.close();
}
}
}
}
1.5.@EqualsAndHashCode
默认情况下,会使用所有非静态(non-static)和非瞬态(non-transient)属性来生成equals和hasCode,也能通过exclude注解来排除一些属性。
@EqualsAndHashCode(exclude={"id", "name"})
1.6.@ToString
类使用@ToString注解,Lombok会生成一个toString()方法,默认情况下,会输出类名、所有属性(会按照属性定义顺序),用逗号来分割。
可以指定包含和不包含的属性
@ToString(exclude="id")
1.7.@NoArgsConstructor, @RequiredArgsConstructor and @AllArgsConstructor
无参构造器、部分参数构造器、全参构造器。Lombok没法实现多种参数构造器的重载。
1.8.@Slf4j 代替我们手写的日志
@Slf4j
@RestController
@RequestMapping(value = "/harbour")
public class HarbourController {
}
2.Translation (翻译插件)
开源地址:https://github.com/YiiGuxing/TranslationPlugin
2.1.Show Translation Dialog
打开翻译对话框。默认显示在工具栏上。默认快捷键:
2.2.Translate
取词并翻译。如果有已选择的文本,优先从选择的文本内取词,否则默认以最大范围自动取词(该取词模式可在Settings中配置)。默认显示在编辑器右键菜单上,默认快捷键:
2.3.Translate and Replace
翻译并替换。取词方式同Translate
操作。默认显示在编辑器右键菜单上,默认快捷键:
3.Maven Helper
- 原来的maven的操作方式
- 安装插件后可以直接在项目目录上操作,无需在右侧一层层展开目录查找想要的命令
这个插件只有当你经常需要操纵maven的时候你才会发现他的方便之处
4.Alibaba Java Coding Guidelines
安装完成后你会发现你代码中不规范的地方全都给你标注出来了,也提供了部分问题alt+enter的快速解决方案
使用如上方式,可对代码进行系统化扫描,产生一个清单
5.GsonFormat
一键根据json文本生成java类 非常方便
6.MyBatisCodeHelperPro(mybatis框架下请一定要使用一下,是我最喜欢的插件,他比想象的还要强大)
mybatis代码自动生成插件,大部分单表操作的代码可自动生成 减少重复劳动 大幅提升效率,作者更新版本和修改bug都很及时。
- 该软件为收费软件29/年 2个码 等于1年15元,按我所在公司的底层框架来说绝对是物超所值
购买地址:http://brucege.com/pay/view - 具体详细的使用方法这里就不多做介绍了下面是原作者的文档地址,请务必点进去看一下这个插件的功能
https://gejun123456.github.io/MyBatisCodeHelper-Pro/#/
7.GenerateAllSetter
一键调用一个对象的所有set方法并且赋予默认值 在对象字段多的时候非常方便
8.String Manipulation(强大的字符串转换工具)
快捷键:alt + M
9.Restfultookit
9.1.快速定位接口
Spring MVC网页开发的时候,我们都是通过requestmapping的方式来定义页面的URL地址的,为了找到这个地址我们一般都是ctrl+shift+F的方式进行查找,大家都知道,我们URL的命名一个是类requestmapping+方法requestmapping,查找的时候还是有那么一点不方便的,restfultookit就能很方便的帮忙进行查找。
只要双击即可跳转到对应的controller接口中
9.2.自动生成请求参数并可发送请求
-
根据我们的controller帮我们生成默认的测试数据,还能直接调用测试,这个可以是解决了我们每次postman调试数据时,自己傻傻的组装数据的的操作,这个更加清晰,比在console找数据包要方便多了
-
只需要将请求地址和数据复制到postman对应区域即可进行测试
9.3.ShowDoc中快速生成请求参数表格和返回数据
一个非常适合IT团队的在线API文档、技术文档工具,可以代替swagger的使用,手动管理生成文档,
在编写的时候就可以和插件相结合
网站地址:https://www.showdoc.cc/
是不是比原来手写数据简单了许多
10.Sql Generator
-
想自己写sql但是又不想打字段,选择其中一个
-
直接粘贴
SELECT id, area_name, country_id, pinyin, pinyin_initials, sort, english_name, state, is_deleted, create_by, create_time, update_time FROM area WHERE id = ?
11.Jrebel(热部署)
jrebel是可以热部署项目的一个工具,更改代码自动部署并不需要重启项目(在spring中的controller中,增加、修改方法都是可以进行热部署而不需要重启的),极大的提高工作效率。
- 开启修改代码更新资源的配置
- 启动
二、装饰性插件
1.Rainbow Brackets
他可以帮助我们写代码时有的时候嵌套太多格式又比较乱,他可以帮我们从颜色上区分括号的对应关系
2.CodeGlance
在右侧多一个全局预览条
3.activate-power-mode
这是一款让你在编码的时候,整个屏幕都为之颤抖的插件。这个我一开始装了,后来就懒得用了