Lombok
Lombok能以简单的注解形式来简化java代码,提高开发人员的开发效率。例如开发中经常需要写的javabean,都需要花时间去添加相应的getter/setter,也许还要去写构造器、equals等方法,而且需要维护,当属性多时会出现大量的getter/setter方法,这些显得很冗长也没有太多技术含量,一旦修改属性,就容易出现忘记修改对应方法的失误。Lombok能通过注解的方式,在编译时自动为属性生成构造器、getter/setter、equals、hashcode、toString方法。
idea下载安装插件
在使用之前需要添加一下依赖:
1
2
3
4
5
6
7<!-- Lombok能以简单的注解形式来简化java代码,提高开发人员的开发效率 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.12</version>
<scope>provided</scope>
</dependency>
POJO类常用注解
- @Getter/@Setter: 作用类上,生成所有成员变量的getter/setter方法;作用于成员变量上,生成该成员变量的getter/setter方法。可以设定访问权限及是否懒加载等
- @ToString:作用于类,覆盖默认的toString()方法,可以通过of属性限定显示某些字段,通过exclude属性排除某些字段
- @EqualsAndHashCode:作用于类,覆盖默认的equals和hashCode
- @NonNull:主要作用于成员变量和参数中,标识不能为空,否则抛出空指针异常
- @NoArgsConstructor, @RequiredArgsConstructor, @AllArgsConstructor:作用于类上,用于生成构造函数。有staticName、access等属性 -
(staticName属性一旦设定,将采用静态方法的方式生成实例,access属性可以限定访问权限)
- @NoArgsConstructor:生成无参构造器
- @RequiredArgsConstructor:生成包含final和@NonNull注解的成员变量的构造器
- @AllArgsConstructor:生成全参构造器
- @Data:作用于类上,是以下注解的集合:
@ToString @EqualsAndHashCode @Getter @Setter @RequiredArgsConstructor
- @Builder:作用于类上,将类转变为建造者模式
- @Log:作用于类上,生成日志变量。针对不同的日志实现产品,有不同的注解
其他重要注解
@Cleanup:自动关闭资源,针对实现了java.io.Closeable接口的对象有效,如:典型的IO流对象
@SneakyThrows:可以对受检异常进行捕捉并抛出
@Synchronized:作用于方法级别,可以替换synchronize关键字或lock锁,用处不大
Maven Helper
可以很方便的处理Maven依赖冲突
MybatisX
除了全局搜索以外,如何方便地在Mybatis
的mapper Java
接口方法和mapper XML
文件之间来回切换?
功能
- Java 与 XML 调回跳转
- Mapper 方法自动生成 XML
计划支持
- 连接数据源之后 xml 里自动提示字段
- sql 增删改查
- 集成 MP 代码生成
- 其他
stackoverflow
这个插件其实是最实用的插件,程序猿遇到的问题,基本都能找到回答,但是它使用的是google搜索引擎,对于,不购买vpn的同学来说,感觉好鸡肋呀~
选中需要搜索的问题,然后,右键点击查询 - 用StackoverFlow搜索的话个人觉得比用google 更精准
CodeGlance
CodeGlance是一款非常好用的代码地图插件,可以在代码编辑区的右侧生成一个竖向可拖动的代码缩略区,可以快速定位代码的同时,并且提供放大镜功能
右侧代码缩略图效果
放大镜效果
Translation
代码中经常遇到不认识的英文单词或者句子,很蒙蔽怎么办?
Translation是一款非常好用的翻译插件,可以随时随地翻译单词、甚至一段话,从此不再需要额外打开浏览器搜索翻译网站了!
翻译单词
翻译一段话
Rainbow Brackets
在代码非常复杂时,各种俄罗斯套娃式的括号简直让人心碎,Rainbow Brackets则是一款可以对成对括号进行着色的插件,顾名思义“彩虹色的括号”,从此复杂代码一眼即可看穿!
装完插件,括号都被染上了彩虹的颜色:
RestfulToolkit
- 你知道你项目里到底写了多少个URL接口吗?
- 如何快速定位某个
URL
接口对应的Controller
代码? - 如何快速测试你的
Controller
接口?
RestfulToolkit则是一个可以解决上述问题的,非常方便的IDEA集成插件,从此Postman
怕是要下岗了
GsonFormat
给你一段Json
格式数据,除了手写之外,如何快速生成一个和该Json
数据对应的Java
对象?
比如一段Json
格式数据如下:
1 | { |
GsonFormat则是一个JSON格式数据 → 对象的快速代码自动生成插件
开始 Alt + Insert
继续看图
JRebel
JRebel是一款JVM插件,它使得Java代码(对*Mapper.xml、*.properties等也支持热部署)
修改后不用重启系统,立即生效。
IDEA上原生是不支持热部署的,一般更新了 Java 文件后要手动重启 Tomcat 服务器,才能生效,浪费时间浪费生命。目前对于idea热部署最好的解决方案就是安装JRebel插件。
JRebel能做什么
以前Tomcat中解决方案:
修改server.xml的配置:
1
2 ><Context path="/helloapp" docBase="helloapp" reloadable="true"/>
>
但改 java代码后果是tomcat会
重启整个项目
。
JRebel是一款热部署
插件。当你的Java-Web项目在Tomcat中run/debug的时候,修改某一个java文件时,JRebel就可以解决在项目运行状态run/debug状态下任意修改java文件并动态反馈实时更新到运行的项目中。
JRebel插件获取与安装
插件安装
IDEA中
File-Settings-Plugin
中搜索JRebel下载安装后重启IDEA激活
在线生成GUID地址 - (服务器地址: https://jrebel.qekang.com/{GUID})
激活前
激活中
激活后
相关设置
设置成离线工作模式
联机工作模式
离线工作模式
上边的日期
February 13, 2021 09:39
是离线的有效期,也就是从离线的那一刻起的180天后(激活有效期),你可以在任何时间通过点击work online
选择在线,然后再点击work offline
来离线,以此延长有效期。
设置自动编译
要想实现热部署,首先需要对Intellij按如下进行设置
- 由于JRebel是实时监控class文件的变化来实现热部署的,所以在idea环境下需要打开自动变异功能才能实现随时修改,随时生效。
- 打开运行时编译
按快捷键Ctrl+Shift+Alt+/
,选择 Registry,设置compiler.automake.allow.when.app.running
JRebel使用
普通Spring Web应用添加Tomcat等服务器容器配置时,
VM option
下方都勾选Update classes and resources,Spring Boot项目忽略此步骤,但IDEA编译器需设置自动编译左下角
勾选要使用热部署的项目模块
添加热部署的模块可在
resource
中看到rebel.xml
配置文件,打开可看到其监听的文件夹,当然可根据自己需求修改运行项目时要点击图中红框中的按钮,即可运行
Alibaba Java Coding Guidelines
一款阿里巴巴公司试行的开发设计规范~
Bug的严重程度、优先级如何定义
- Blocker: 即系统无法执行、崩溃或严重资源不足、应用模块无法启动或异常退出、无法测试、造成系统不稳定。
严重花屏、内存泄漏、用户数据丢失或破坏、系统崩溃/死机/冻结、模块无法启动或异常退出、严重的数值计算错误、功能设计与需求严重不符、其它导致无法测试的错误, 如服务器500错误 - Critical:即影响系统功能或操作,主要功能存在严重缺陷,但不会影响到系统稳定性。
功能未实现、功能错误、系统刷新错误、数据通讯错误、轻微的数值计算错误、影响功能及界面的错误字或拼写错误、安全性问题 - Major:即界面、性能缺陷、兼容性。
操作界面错误(包括数据窗口内列名定义、含义是否一致)、边界条件下错误、提示信息错误(包括未给出信息、信息提示错误等)、长时间操作无进度提示、系统未优化(性能问题)、光标跳转设置不好,鼠标(光标)定位错误、兼容性问题 - Minor/Trivial:即易用性及建议性问题。
界面格式等不规范、辅助说明描述不清楚、操作时未给用户提示、可输入区域和只读区域没有明显的区分标志、个别不影响产品理解的错别字、文字排列不整齐等一些小问题
犹如神助的功能
阿里规范插件实时检查你书写的代码,并在右侧实时给出警告,警告也是汉字的!!
注:以下处理方式仅限Blocker,其他还需要自己手动修正
快捷键:Ait + Enter 自动补全(注:Windows 快捷键)
扫描结果面板,点击按钮自动补全