1.建立代码块mylock快捷键
步骤 File ->Settings->Editor->Live Templates -> Java -> + -> Live Template
代码块:
$STAER$.lock();
try {
}catch (Exception e){
e.printStackTrace();
}finally {
$STAER$.unlock();
}
2.快速枚举代码块myenum
步骤 File ->Settings->Editor->Live Templates -> Java -> + -> Live Template
{
ONE(1,""),
TWO(2,""),
THREE(3,"");
@Getter
private Integer retCode;
@Getter
private String retMessage;
MyEnum(Integer retCode, String retMessage) {
this.retCode = retCode;
this.retMessage = retMessage;
}
public static $STAER$ forEach_CounttryEnum(int retCode){
MyEnum[] values = $STAER$.values();
for (MyEnum element : values){
if (retCode == element.getRetCode()){
return element;
}
}
return null;
}
}
效果:
3.快速线程等待Sleep()
步骤 File ->Settings->Editor->Live Templates -> Java -> + -> Live Template
try {TimeUnit.SECONDS.sleep($STAER$); } catch (InterruptedException e) { e.printStackTrace(); }
效果:
4.快速创建线程Thread
步骤 File ->Settings->Editor->Live Templates -> Java -> + -> Live Templat
new Thread(()->{ $STAER$ },"I'm a Thread name").start();
5.创建JAVA添加对应作者和时间
步骤 File ->Settings->Editor—> File and Code Templates—>includes—>FileHeader
/**
* @author TuanTuan
* @date ${DATE} ${TIME}
* @version 1.0
*/
6.(推荐)设置IDEA初始化内存和最大内存解决卡顿问题
-Xmx4096m
-Xms2048m
-XX:ReservedCodeCacheSize=256m
-XX:+UseG1GC
7.java解决maven jar冲突
描述:项目中我们可能依赖多个jar包,其中包与包之间可能会发生包依赖冲突问题(A、B包中依赖了C,但是A、B中依赖的C包的版本不同,导致你的代码出现错误)
1.解决方法使用IDEA的插件(Maven Helper)使用exclusions标签将传递依赖排除出去来排查哪些包之间的依赖关系和冲突关系,把不需要包的版本进行剔除。
2.到父POM文件中设置全局的使用dependencyManagement标签锁定依赖的版本 ,子pom全部依赖与它,不需要解决jar冲突问题
ps:其中设计到scope标签
Maven考虑了6中可能的scope供选择:
- compile: 默认的scope。编译、测试、打包全都需要。compile参与依赖传递,就是说,你的项目A依赖于B(依赖scope是compile),项目C依赖于你的项目A,那么C也就依赖于B。
- provided: 表示JDK或者容器会在Runtime时提供这些(jar),如上面说到的servlet api。provided的东西在编译和测试时会用到,不参与传递依赖。
- runtime: 表示编译时不需要,但测试和运行时需要,最终打包时会包含进去。
- test: 只用于测试阶段(测试的编译和测试的运行),典型的就是junit的jar。
- system: 和provided类似,但要求jar是你的系统里已有的,不会在repository里找,如rt.jar,tools.jar这些。
- import: 简单的说,你的项目的pom可以继承另一个项目的pom,从而继承了父项目的依赖关系,但是因为之后single inheritance的限制,所以创造了import,使得你可以“导入”或者说“继承”任何一到多个项
3.pom中生明优先原则
通过上图可以看到,spring-aop和spring-webmvc都传递过来了spring-beans,但是因为spring-aop在前面,所以最终使用的spring-beans是由spring-aop传递过来的,而spring-webmvc传递过来的spring-beans则被忽略了
8.idea 通过url地址找到对应的Controller 代码入口、
描述:如项目经理要我们处理一个别人的一个接口的实现等,我们需要去查询接口的入口及实现。
1.可以通过Ctrl+shift+R进行全局搜索接口名称来查询对应的controller入口的位置。
2.可以通过idea的插件RestfulTool 来查询对应的controller层位置。
也可以用这个插件来代替postmant发送请求
9.idea 代码样式格式化
1.通过Ctrl+Alt+L进行自带的快捷键格式化
2.通过ieda插件Save actions 来进行代码补齐和格式的格式化
10.(推荐)idea中对象dto、vo、pojo相互转换set值。
1.通过idea的插件(vo2dto)来相互转换。先copy要转换的对象,再点击到转换的对象Generate中的vo2dto进行来转换
2.通过Mapstruct映射包,我们定义一下接口,对象的set值
11.(推荐)idea中添加方法和类名和变量,注释javadoc格式
1.使用idea中插件(Easy Javadoc)翻译类、方法名、变量名,生成对应的javadoc注释(快捷键 Ctrl+\)或者自定义格式
自定义格式
12.解决开启多个服务时候导致我们内存消耗太快,配置我们jvm参数来控制每个服务的内存限制
限制每个服务间,的最大内存从而提高回收的次数,从而达到开启多个服务(可以设置spring boot默认的jvm参数或者单独到服务的jvm中配置)
VM options参数: -Xmx200m -Xms200m -XX:+UseG1GC -XX:MaxGCPauseMillis=20
配置Springboot项目初始配置
单独配置项目的jvm
13.(推荐)java代码规范检测、提示、修改
使用idea中插件(Alibaba Java Coding Guidelines)扫描我们代码中的不规范问题,并提示修改。
14.(推荐)idea中使用插件(Lombok)、减少代码编写等
15.对接第三方api接口中,通过返回的json快速的创建我们的对象
使用idea中插件(GsonFormatPlus),可以快速对json映射出对应的对象,可以对类型进行所需要的修改和注释(快捷键alt+s)
{
"error": 0,
"status": "success",
"date": "2021-12-31"
}
16.编写对象的时候一定要重写toString方法,方便后面的调试工作
idea 中使用快捷键Alt+insert 弹出Generate窗口,点击toString按钮选择(String concat(+) and super.toString)模板,来重写toString方法。
17.(推荐)搜索maven依赖,不用通过网站上搜索,直接到idea中搜索
18.(推荐)idea中源码和代码都是英文的,不是很方便,所以我们安装插件Translation来翻译
19.服务器远程调试模式,前提是需要服务器端开启远程调试模式(配置jvm参数)
设置vm参数: -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=1044 后启动服务我们本地就可以通过ip加 1044这个端口进行调试了。
20.idea 代码标记快速跳转
代码标记快捷键(Ctrl + Shift + 数字)
代码跳转快捷键(Ctrl + 数字)
- ps 跳转的位置就是我们标记对应数字的位置