IDEA常用插件(二)

Easy Code 


Lombok

lombok的注解:

 @Data

      注解在类上:提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法
@Setter :注解在属性上;为属性提供 setting 方法
@Getter :注解在属性上;为属性提供 getting 方法
@Log4j :注解在类上;为类提供一个 属性名为log 的 log4j 日志对象
@NoArgsConstructor :注解在类上;为类提供一个无参的构造方法
@AllArgsConstructor :注解在类上;为类提供一个全参的构造方法
@Cleanup : 可以关闭流
@Builder : 被注解的类加个构造者模式,构造对象
@Synchronized : 加个同步锁
@SneakyThrows : 等同于try/catch 捕获异常
@NonNull : 如果给参数加个这个注解 参数为null会抛出空指针异常
@Value : 注解和@Data类似,区别在于它会把所有成员变量默认定义为private final修饰,并且不会生成set方法。
@toString:注解在类上;生成toString方法,默认情况下,会输出类名、所有属性,属性会按照顺序输出,以逗号分割。
官方文档https://projectlombok.org/features/index.html

@Slf4j

//类上面注解了,直接调用 log 即可:
log.info(xxxx);

@Log

使用的是 java.util.logging.Logger ,直接使用 变量 log

Lombok工作中需要注意的点:

  1. 在类需要序列化、反序列化时详细控制字段时(例如:Jackson json序列化)

  2. 使用@Slf4j还是@Log4j看项目使用的日志框架;

  3. 选择适合的地方使用Lombok,例如POJO是一个好地方,因为他很单纯;

引入:

Lombok是一个很牛批的插件(本质是个Java库),项目里一旦引入了Lombok神器之后,你项目中所有诸如:对象的构造函数、 equals()方法,属性的 get()/set()方法等等,这些没有技术含量的代码统统都不用写了,Lombok帮你搞定一切,全部帮你自动生成!

1. 项目中引入Lombok 

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

2.IDE中安装Lombok插件;

 

使用:

1.get/set不用写了 @Getter@Setter即可方便搞定。也可直接用@Data;

2.new对象: 只需要在类上用上 @Builder注解:Course course = Course.builder().id(123l).name("高等数学").score(100).build(); @Builder注解就是一个典型的“建造者模式”的实现案例,建造者模式的链式调用;

3.构造函数不用写了 :

      全参构造器:类上使用了Lombok的注解AllArgsConstructor,Lombok自动会帮你生成一个全参构造器!!

  无参数构造器:类上使用了Lombok的注解NoArgsConstructor;

  部分参数构造器:@RequiredArgsConstructor:

public class Course {

private Long id; // 课程ID

private final String name; // 课程名称

private Integer score; // 课程成绩

// 因为name字段定义成final,所以Lombok自动会帮你生成一个部分参数的构造器!!

public Course(String name) {

this.name = name;

}

}

因为 name字段定义成 final,所以 Lombok自动会帮你生成一个部分参数的构造器!!

   4.null判空不用写了:Lombok的 @NonNull注解可以自动帮我们避免空指针判断。该注解作用在方法参数上,用于自动生成空值参数检查;

public static void output( @NonNull String input ) {

// 原先这里对 input 的判空不用手动做了

System.out.println( input );

}

 5.屁股不用擦了@Cleanup :假如我们要读取一个 txt文本文件,一般会这样写代码:

BufferedReader br = null;

try {

FileReader fileReader = new FileReader("呵呵.tet"); // 定义文件

br = new BufferedReader( fileReader ); // 读取文件

System.out.println( br.readLine() ); // 读取文件一行内容

} catch (Exception e) {

e.printStackTrace();

} finally {

try {

br.close(); // 无论如何文件句柄在使用结束后得手动关闭!!

} catch (IOException e) {

e.printStackTrace();

}

}

注意,这个文件句柄在使用完成之后是一定要手动 close的,否则就有可能资源泄漏。

有了Lombok之后,这种擦屁股活儿统统不用干了,一个 @Cleanup注解即可搞定
@Cleanup BufferedReader br = null; // 一个 @Cleanup注解搞定!

try {

FileReader fileReader = new FileReader("呵呵.tet");

br = new BufferedReader( fileReader );

System.out.println( br.readLine() );

} catch (Exception e) {

e.printStackTrace();

}

6.:异常不用捕捉了:@SneakyThrows   不推荐使用

必须友情提示的是:这样写你是爽了,但你很有可能会被队友一顿暴打,因为别人调用你编写的函数,并不能显式的获知需要处理哪些异常,这样容易留坑!

public void openTxt( String filename ) {

try {

FileReader fileReader = new FileReader( filename );

} catch (FileNotFoundException e) {

e.printStackTrace();

}

}

这地方的 FileNotFoundException异常,要么显式地在函数级抛出,要么就像上面一样 try/catch内部消灭。

如果在编码时,不想处理这种繁杂的异常处理,你可以使用Lombok的 @SneakyThrows注解进行简化,比如上面的代码就可以简化为:
@SneakyThrows

public void openTxt( String filename ) {

FileReader fileReader = new FileReader( filename );

}

这样你编码时就无需处理异常了。

 

上面列举了几个平时项目开发中使用非常频繁的Lombok注解,除此之外,还有诸如像:

  • @ToString:为类自动生成toString()方法

  • @EqualsAndHashCode:为类自动生成hashCode和equals实现

  • @Log:为类自动生成log日志记录

  • @Synchronized:为类方法或实例方法自动生成synchronized保护


generateallsetter一键生成set方法:

选中对象,Alt+enter就可以执行操作


阿里Java规约插件(alibaba)

 直接搜搜alibaba就可以了


GsonFormat(json数据装换为对象)

  将JSONObject格式的String 解析成实体:

  插件地址:https://plugins.jetbrains.com/idea/plugin/7654-gsonformat

新版本无法使用,直接在官网下载老版本安装:

使用:

自定义个javaBean(无任何内容,就一个空的类)

复制你要解析的json

然后alt+insert或者使用快捷键 alt+s


Maven Helper(解决maven包冲突的问题)

https://www.cnblogs.com/a8457013/p/9108698.html

冲突问题

比如项目中引用了两个 fastjson.jar的版本,分别为

fastjson:1.2.28 
fastjson:1.2.3

我们用到了1.2.28中的某个类, 比如 A类,在版本更新中 1.2.3版本去掉了这个类,然而我们项目中maven 却把1.2.3的 jar 打包进去了,那我们就会报异常,不存在这个 class,但是我们调错误的时候却发现这个类存在,那我们怎么找到问题根源呢,到底是哪个包的需要Exclude 呢,我之前也不会,今天有幸找到个方法,分享给大家。

安装完成后,在 pom 文件下方会出现这个东西 
这里写图片描述

  • 点进去你会发现仿佛回到了 eclipse 
    这里写图片描述

  • 接下来到重点了,选中冲突选项 conflicts,这一列都是存在冲突的包 
    这里写图片描述

  • 以fastjson 为例 
    这里写图片描述
    当然我们调错误的时候也可以直接搜索有问题的包,如下 
    这里写图片描述

  • 选中右键就可以 Exclude 啦,想用1.2.28就把其他版本的Exclude掉,想用1.2.3就把其他版本的Exclude掉,是不是很方便。 
    这里写图片描述


AI代码小能手: Codota;

   插件地址:https://plugins.jetbrains.com/plugin/7638-codota-

      官网:https://www.codota.com/

        智能代码提示

        使用快捷键可以搜索知名开源项目中该类或者方法的使用案例,超赞。


VisualVM Launcher(java性能分析插件)


MyBatisCodeHelper自动生成代码

https://blog.csdn.net/HcJsJqJSSM/article/details/84348966

https://www.lanzous.com/b636413/ 
密码:90sd


Material Theme UI

插件地址 https://plugins.jetbrains.com/plugin/8006-material-theme-ui

颜值控的福音


Java Stream Debugger

插件地址:https://plugins.jetbrains.com/plugin/9696-java-stream-debugger

可以查看stream中间操作的数据状态,超赞。

 


Auto filling Java call arguments

        插件地址:https://plugins.jetbrains.com/plugin/8638-auto-filling-java-call-arguments

        在调用函数时,通过alt+enter键,触发联想功能,选择”auto fill call parameters”自动填充调用的函数的形参名。
 


MyBatisCoderHelper

        [1] 支持mybatis接口和xml文件之间跳转

        [2] mybatis mapper xml文件sql自动补全


PlantUML integration

        利用plantuml的语法,快速画uml图形,超赞

        配套的网站http://plantuml.com/zh/


 Stack trace to UML

          错误堆栈信息转成Uml形式

         插件地址:https://plugins.jetbrains.com/plugin/10749-stack-trace-to-uml


IDE Features Trainer

          在Ide中学习必要的快捷键和交互

          插件地址

          https://plugins.jetbrains.com/plugin/8554-ide-features-trainer


FindBugs

https://plugins.jetbrains.com/plugin/3847-findbugs-idea

可以扫描代码,发现隐藏的Bug


jol-java-object-layout

https://plugins.jetbrains.com/plugin/10953-jol-java-object-layout

查看 Java 对象布局和大小


Jclasslib

反编译插件,不需要手动敲 javap

sequence digram

根据代码绘制出时序图,非常赞~~

 
 


CodeGlance

CodeGlance是一款非常好用的代码地图插件,可以在代码编辑区的右侧生成一个竖向可拖动的代码缩略区,可以快速定位代码的同时,并且提供放大镜功能

右侧代码缩略图效果:

放大镜效果:


Translation

代码中经常遇到不认识的英文单词或者句子,很蒙蔽怎么办?

Translation是一款非常好用的翻译插件,可以随时随地翻译单词、甚至一段话,从此不再需要额外打开浏览器搜索翻译网站了!

翻译逐个单词:

翻译一段话:


Rainbow Brackets

在代码非常复杂时,各种俄罗斯套娃式的括号简直让人心碎,Rainbow Brackets则是一款可以对成对括号进行着色的插件,顾名思义“彩虹色的括号”,从此复杂代码一眼即可看穿!

装完插件,括号都被染上了彩虹的颜色:


RestfulToolkit

  • 你知道你项目里到底写了多少个URL接口吗?

  • 如何快速定位某个URL接口对应的Controller代码?

  • 如何快速测试你的Controller接口?

RestfulToolkit则是一个可以解决上述问题的,非常方便的IDEA集成插件,从此Postman怕是要下岗了:


GsonFormat

给你一段Json格式数据,除了手写之外,如何快速生成一个和该Json数据对应的Java对象?

比如一段Json格式数据如下:

{
    "status": 0,
    "msg": "操作成功",
    "data": 1
}

GsonFormat则是一个JSON格式数据 → 对象的快速代码自动生成插件。


MyBatis Log Plugin   要钱

Mybatisxml文件中的SQL语句都是拼装起来的,但有时候(比如在调试的时候)想把某个请求对应的后台具体SQL查询语句单独拿出来测试或验证,该怎么办呢?

MyBatis Log Plugin这个插件既可以帮你完美地解决这个问题:


Free Mybatis plugin

除了全局搜索以外,如何方便地在Mybatismapper Java接口方法和mapper XML文件之间来回切换?

Free Mybatis plugin插件此时就可以大显身手了:


 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值