如果以前装有idea需要先删除,以避免冲突,在idea安装目录/bin/Uninstall.exe双击
最新版本
https://www.jetbrains.com/idea/download/?section=windows
历史版本
https://www.jetbrains.com/idea/download/other.html
注意:一定要下载旗舰版
卸载老版本 IDEA 完成后,双击刚刚下载好的 IDEA 2023.3 版本安装包。弹框会提示选择安装路径,
, 然后点击 Next 按钮:
IDEA 运行成功后,会弹出如下对号框,强制用户需要先登录 JetBrains 账户才能使用,点击退出
未来配置相关的信息,我们必须新建一个工程进入,选择一个最基础的java工程,如图
我们创建一个工程后,就可以File->Setting配置Idea的常见属性
这里外观指的是idea窗口和按钮相关,不涉及到到编辑内容区
2023新增一个UI模式,默认选中,取消重启后回到经典模式
在Appearance里调整的窗体的字体大小等,内容编辑区的字体和大小需要在Font里配置,
File | Settings | Editor | Font
编辑区的字体动态大小
我们可以设置动态调整编辑区字体大小
File | Settings | Editor | General
勾选后,我们在内容区,可以按住Ctrl+鼠标滚轮进行动态的放大和缩小
我们一般采用utf-8编码
File | Settings | Editor | File Encodings
idea2023内容区编辑后,系统是自动保存的,默认没有任何提示,可能有些用户不习惯,可以设置,正操作未保存的内容区有个圆点,表示正在编辑
File | Settings | Editor | General | Editor Tabs
默认情况下,idea是不启用参数补全的(节约性能),这个在我们调用是不是很智能。
File | Settings | Editor | General | Code Completion
效果
还有水印提示,这样就很智能了
File | Settings | Build, Execution, Deployment | Build Tools | Maven
1.idea主题、字体这些,一次配置后,以后新增项目都有效
2.编码、maven、工具这些,新建项目时依然要配置
1.utf-8编码:File | Settings | Editor | File Encodings
2.自动编译:File | Settings | Build, Execution, Deployment | Compiler
3.自动导包:File | Settings | Other Settings | Auto Import
4.git配置:File | Settings | Version Control | Git
5.maven配置:File | Settings | Build, Execution, Deployment | Build Tools | Maven
setting:当前项目配置
new projects Setup|Setting for new Project :新建项目配置,和setting配置一样
进入后,可把maven和utf-8配置了
我们创建各种文件,都有对应模板,可以修改,最常见的是类的注释
File | Settings | Editor | File and Code Templates
比如我们给类加上注释
输入:
/**
*@class: ${PACKAGE_NAME}.${NAME}
*@description: ${description}
*@author: jiangzengkui
*@company: 教育家
*@create: ${YEAR}-${MONTH}-${DAY} ${HOUR}:${MINUTE}
*/
生成类的注释
/**
* @class: com.jsoft.example.X
* @description:
* @author: jiangzengkui
* @company: 教育家
* @create: 2023-12-15 12:32
*/
我们新增一个mybatis的后缀模板
我们点击新增文件,模板名称就出现了
我们在粘贴复制代码时,所使用导的其他地方的类,可以自动导入
File | Settings | Editor | General | Auto Import
都勾选上
Add unambiguous imports on the fly:自动导入不明确的结构 Optimize imports on the
fly:自动帮我们优化导入的包
我们配置好的内容,可以保存下来,到其他地方使用,也可以导入,导出的是一个压缩包settings.zip
idea是一款高智能化的开发工具,很多技巧能提升开发效率
把光标放置对应类上,右键,选择Diagrams-Show Diagram
可以查看这个类及互相依赖的类的UML类图
如果比较习惯这个版本,可以关闭版本升级提示
idea里面非常多的快捷键,详细的可参考相关指南,个人觉得重要的列举入下
场景:一个类的方法太多,想看到所有方法和属性,利于我们更快了解类的方法和属性
选中要注释的代码,执行以下操作
单行注释 ctrl + /
多行注释 ctrl + shift + /
// System.out.println("ffff");
// System.out.println("ffff");
/*System.out.println("aa");
System.out.println("aa");*/
}
我们要看一个类的源码,有两种情况:
1.代码里已经有类,则按住ctrl+点击这个类
2.我们知道类名或者部分类名,trl + shift + t
这个可以用于查找jdk的源码和自己写的文件
在工具条:Edit->find
1.在打开的文件里查早 CTRL+F
2.已知道类名或者部分类名,在整个工程里查找CTRL+Shift+F
或者菜单:code|Refmact code
打开最近关闭的文件
我们操作了很多文件又关闭了,从包里找太麻烦,就把最近打开的文件调出来
忘记方法的参数了,直接Ctrl+p
为突出编辑区,可alt+1折叠左边菜单
Alt+Enter属于万能快捷键,在很多场景都有应用,在不知道怎么办时,不妨试试整个快捷键组合
1.接口实现类
把光标放置在接口名上,Alt+Enter,可快速生成实现类
2…接口跳转到实现类
把光标放置在接口名上,Alt+Enter
- 捕捉异常
4.自动导包
我们在一个变量直接输入一下后缀,便可以生成相关代码
配置项:
File | Settings | Editor | General | Postfix Completion
.var | 声明一个变量 |
. sout | 打印一个变量 |
.fori | 正循环一个数组,带索引 |
.forr | 倒循环一个数组,,带索引 |
.for | for(String s:sz),不用索引的循环,可用于数组\list |
.iter | 和.for效果一样 |
.null | 生成if(xx==null) {} |
.nn | 生成if(xx!=null) {} |
.if | x>10.if 生成if(x>10){} |
写一个代码,声明基本变量,对象,数组、list变量,尝试一下即知道效果了
缩写快捷方式能提升编码效率,可以用已有的,也可自定义
模板可以在两个地方定义
1.Editor – Live Templates 和
缩写 | 生成代码 |
---|---|
sout | System.out.println(); |
main | public static void main(String[] args) {}; |
iter | for (Integer i : list) {}; 和后缀补全效果一样x.iter,容易混淆 |
ifn | if (list == null) {}; 和后缀补全效果一样x.null,容易混淆 |
inn | if (list != null) {}; 和后缀补全效果一样x.nn,容易混淆 |
配置:File | Settings | Editor | Live Templates
可以自定义缩写模板,把我们日常用到比较多的粘贴复制等做成缩写
1.可以先新增一个分组,存放自己写的方法
2.选中一个分组,点击新增一个模板
3.填写模板内容
注意:$变量名$,如果没有表达式,就是光标所在地,点击回车到第二个变量
我们下面写几个自定义模板
(1)map遍历
Abbreviation:maplist
Description:生成map的遍历
Template tex:
for(String key : $VAR1$.keySet()){
$VAR2$ value = map.get(key); //map值
$EDN$
}
(2)定义字符串变量
Abbreviation:vars
Description:声明字符串变量
Template tex:
private String $VAR1$; //$VAR2$
$END$
(3)测试方法
Abbreviation:test
Description:test测试方法
Template tex:
@Test
public void test$VAR1$(){
$END$
}
(3)优化方法注释
Abbreviation:*
Description:优化函数注释
Template tex:注意不是/**,这样读不出表达式数据出来
**
* @Description: $description$
* @Create:$Date$ $Time$
* @Param: $param$
* @Return: $return$
*/
注意:这里必须用*,Expand with:enter
其变量表达式如下:
很多效果是一样吗,如null 迭代,但写法不一样,
缩写就是输入说些,后缀补全是在对象后面加.+后缀
默认打开文件过多,只显示一行,其他省略
可以设置为多行,不隐藏
效果如图:
在 Eclipse 中我们有 Workspace(工作空间)和 Project(工程)的概念,在 IDEA
中只有 Project(工程)和 Module(模块)的概念。这里的对应关系为:
Eclipse 中 workspace 相当于 IDEA 中的 Project
Eclipse 中 Project 相当于 IDEA 中的 Module
2.在 IntelliJ IDEA 中 Project 是最顶级的级别,次级别是 Module。一个 Project
可以有多个 Module。目前主流的大型项目都是分布式部署的,结构都是类似这种多 Module 结构
这类项目一般是这样划分的,比如:core Module、web Module、plugin Module、solr Module 等等,模块之间彼此可以相互依赖。通过这些 Module 的命名也可以看出,他们之间都是处于同一个项目业务下的模块,彼此之间是有不可分割的业务关系的
3.相比较于多 Module 项目,小项目就无需搞得这么复杂。只有一个 Module 的结构 IntelliJ IDEA 也是支持的,并且 IntelliJ IDEA 创建项目的时候,默认就是单Module 的结构的
DEA有两个概念,一个是Project(工程),一个是Module(模块)。
其中,一个模块相当于MyEclipse中的一个项目,也就是一个包。而一个工程就是由多个包组成的整体。在IDEA中,并没有对Project和Module进行强关联和强约束。主要起到一个项目定义、范围约束、规范类型的效果。
比如,我接了一个供方系统的工程,这个工程有一个前端的项目包,一个后端的项目包,也就是两个模块。那么我就会建一个文件夹叫做supplier(供方系统),然后把前后端的两个项目包都放在这个文件夹中。项目包就叫模块,整个文件夹就表示一个工程。
通过上面的介绍,我们知道:在 IntelliJ IDEA 中Project是最顶级的结构单元,然后就是Module,一个Project可以有多个Module。目前,主流的大型项目结构基本都是多Module的结构,这类项目一般是按功能划分的,比如:user-core-module、user-facade-module和user-hessian-module等等,模块之间彼此可以相互依赖。通过这些Module的命名可以看出,它们都是处于同一个项目中的模块,彼此之间是有着不可分割的业务关系的。
因此,我们可以大致总结出:一个Project是由一个或多个Module组成,尽量让各模块处于同一项目之中,此时彼此之间具有互相依赖的关联关系。在这里,之所以说“尽量”,是因为 IntelliJ IDEA 的Project是一个没有具备任何编码设置、构建等开发功能的,主要起到一个项目定义、范围约束、规范类型的效果,或许,我们也可以简单地理解Project就是一个单纯的目录,只是这个目录在命名上必须有其代表性的意义。在一般情况下,IntelliJ IDEA 是默认单Project单Module的,这时Project和Module合二为一,在没有修改存储路径的时候,显然Project对Module具有强约束作用啦!不过说实话,这里就是将Module的内容放在了Project的目录下,实际上还是Module自己约束自己。
空项目没有任何东西,可以理解成一个文件夹
我们选择创建maven工程
这里重点是Build system:Itellij就是不带构建工具的普通java工程
生成maven工程后,可以按照maven的框架来构建代码,具体maven知识请参考mave知识讲解
虽然 目前都采用前后端分离技术,但老的项目依然在用
选择je22和servlet
工程结构
查看pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.jsoft</groupId>
<artifactId>idea_web</artifactId>
<version>1.0-SNAPSHOT</version>
<name>idea_web</name>
<packaging>war</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.source>1.8</maven.compiler.source>
<junit.version>5.9.2</junit.version>
</properties>
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.3.2</version>
</plugin>
</plugins>
</build>
</project>
配置tomcat
配置tomcat路径和端口
部署
选择springboot版本及依赖功能
springboot工程结构
运营启动类,项目启动成功即可
插件通过 File | Settings | Plugins来管理的
lombok是一个简写vo的get set 构造函数的第三方库,idea2023已经默认下载安装了lombok插件,spring也集成了lombok
pom
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.30</version>
</dependency>
在代码就可使用了,具体用法请参考lombok相关学习资料