八、构建
蛋变成鸡的一步,怎样处理好一个蛋,一窝蛋?
1. 构建
- 构建项目:Build | Build Project (
Ctrl+F9
) - 重新构建项目:Build | Rebuild Project (
Ctrl+Shift+F9
) - 构建Module:Build | Build Module
2. 运行
在菜单 Run 下面会有相关运行的操作,可以在 Run | Edit Configurations 中管理配置各种运行方式。
- 运行/调试:
Shift + F10/F9
- 运行/调试当前光标所在主方法:
Ctrl+Shift + F10/F9
- 运行/调试列表:
Alt+Shift + F10/F9
- 停止/重启:
Ctrl + F2/F5
2.1 Main
如果代码中存在Main方法,并以Main方法形式启动,打开Main方法所有类,除了使用 Alt+F10
或 Alt+Shift+F10
启动之外,也可以单击类名或方法名所在的运行Gutter图标。
如果想要全屏或者分屏显示运行日志,可以把运行工具窗口的 View Mode 设置成 Window 模式。
2.2 Tomcat
如果Web项目要使用Tomcat启动,则先要配置Tomcat Server运行方式,在 Run | Edit Configurations 添加该运行方式,在添加列表中选择 Tomcat Server | Local,配置好后即可运行。
在配置之前需要在本地下载Tomcat,在 Edit Configurations 配置中可以不仅可以添加运行方式,还可以对每个运行方式进行其他配置,比如:VM Options 等。
3. 调试
使用Debug启动可以快速定位问题,打断点步进调试是每个开发人员必备的技能,这里不多说,常用快捷键:
- 每行执行:
F8
- 进入方法:
F7
- 跳出方法:
Shift+F8
- 执行到下一个断点:
F9
- 跳转到当前执行的断点位置:
Alt+F10
- 计算表达式:
Alt+F8
技巧
- 在断点停止的时候可以使用计算表达式来调试断点前的数据。
- 不小心跳过了自己想要调试的断点,可以使用 Drop Frame 来删除当前栈帧,来重新执行方法。
- 在栈帧窗口(Frames)右击,可以使用 Force Return 来强制返回当前方法,或使用 Throw Exception 来抛出异常,也可以右击变量(Variables)来修改变量的值以达到调试结果。
九、工具
IDEA不仅仅只是一个写代码的软件,还拥有开发过程中经常使用的工具。
1. 数据库
在视图工具栏 View | Tool Windows | Database 中可以找到Database工具,点击Toolbar上的加号可以添加数据源,配置好服务器和驱动后就可以使用了,打开 Console 输入SQL,使用 Ctrl+Enter
执行。
2. 服务器管理
在工具栏 Tools | Deployment | Browse Remote Host 菜单打开Remote Host工具,点击 ... 配置服务器,配置好了之后就可以操作 Remote Host 的文件树了。
3. HTTP客户端
在任何目录下都可以右击新建文件的时候创建 New HTTP Request
文件来编写HTTP报文来请求和测试HTTP接口,推荐在test
目录下创建。创建测试文件如下:
GET http://localhost:80/api/item?id=99 Accept: application/json
点击每个请求报文左侧的运行Gutter图标就可以发送请求,同样创建POST请求:
POST http://localhost:80/api/item?id=99 Content-Type: application/x-www-form-urlencoded id=1&name=2&gender=1&mobile=1413131212
可以在请求报文中使用环境变量,使用{{var}}
来引用变量,变量可以在配置文件(http-client.env.json
或rest-client.env.json
)中定义:
{ "local": { "host": "http://localhost:8080", "x_token": "token" }, "test": { "host": "http://10.250.1.122:8087", "x_token": "token" } }
在运行的时候选择不同的环境使用不同的变量:
POST {{host}}/api/item Content-Type: application/json { "name": "ajn", "age": 24 }
变量也可以在响应脚本中使用client.global.set
设置和使用client.global.get
获取。
可以使用响应脚本来测试HTTP请求,脚本使用Javascript语言编写:
GET https://httpbin.org/status/404 Accept: application/json > {% client.test("Request executed successfully", function() { client.assert(response.status === 200, "Response status is not 200"); }); %}
响应脚本API详解:
client
:客户端对象
set(string, object)
:设置变量get(string)
:获取变量isEmpty()
:判断全局变量是否为空clear(string)
:清除某个变量clearAll()
:清除所有变量global
:全局变量属性test(string, function)
:测试函数assert(boolean, string)
:断言函数log(string)
:输出日志函数
response
:响应对象
body
:响应体headers
:响应头status
:响应状态码contentType
:响应的ContentType头
4. SSH会话
在工具栏 Tool | Start SSH session 菜单可以新建SSH会话,在前面服务器管理中如果创建了服务器,会自动添加该服务器的SSH会话。
十、插件
强大的功能,还远远不够,一个合格的软件,都应支持功能自由地扩展。
1. Lombok
Lombok插件支持代码中使用Lombok注解编译生成Get和Set等方法,该插件不仅支持注解,它在菜单中添加了两个功能:
- Refactor | Lombok:插入Lombok注解
- Refactor | Delombok:将Lombok注解生成代码
2. Alibaba Java Coding Guidelines
该插件是结合阿里巴巴Java开发规约而出的,主要功能用于检测代码是否条例阿里开发规范,它结合了IDEA的纠错功能可以快速定位问题和修复问题,在菜单中添加的功能有:
- Tool | 阿里编码规约
阿里规约插件提示的问题也可以使用 Alt+Enter
来寻找解决办法。
技巧
- 根据阿里规约,快速分析代码并一键修复。
3. CamelCase
CamelCase添加一个快捷键 Alt+Shift+U
来修改标识符的下划线、小驼峰、大驼峰等格式,并支持批量转换。
按住 Alt+Shift
使用鼠标单击可以选择多选编辑。
4. Easy Code
Easy Code插件可以根据数据库表和模板来生成代码,可以解决编写重复底层代码的问题。添加的设置项有:
- 配置编码和作者名称:Other Settings | Easy Code
- 配置类型映射:Other Settings | Easy Code | Type Mapper
- 配置模板:Other Settings | Easy Code | Template Setting
- 配置全局模板:Other Settings | Easy Code | Global Config
只需在 Database 工具栏选中一个或多个表,右击 EasyCode | Generate Code 就可以生成代码,针对单表配置类型映射可以右击 EasyCode | Config Table 来配置。
5. GenerateAllSetter
该插件可以一键调用对象的所有Setter方法,在新建对象实例后使用 Alt+Enter
弹出面板中菜单:
- 创建似有Setter不带默认值:Generate all setter no default value
- 创建似有Setter带默认值:Generate all setter with default value
6. Maven Helper
该插件用于Maven管理,可以分析Maven依赖结构和执行Maven生命周期,添加快捷键 Ctrl+Alt+R
来运行Maven生命周期,可以在 File | Settings | Other Settings | Maven Helper 中进行设置,另外一个功能就是在pom.xml
文件下方添加了一个Dependency Analyzer标签,可以用来分析Maven依赖,可以查看和解决Maven依赖冲突。
7. MyBatisX
MyBatisX插件主要增强了IDEA对MyBatis框架的支持,可以在 File | Settings | Other Settings | Mybatis 进行设置,它添加的功能有:
- 检验Mapper层的代码逻辑
- 添加Mapper层接口与XML文件跳转功能的Gutter图标
- 快速根据接口生成XML标签
- 接口参数生成
@Param
注解
8. RestfulToolkit
该插件是管理Restful接口的工具集,它提供的功能有:
- 使用快捷键
Ctrl+\
来根据URL来跳转到方法定义 - 提供了一个接口的树形窗口
- 提供了一个简单的HTTP请求工具
- 在请求方法上生成特殊字符串并复制的功能
- 复制K-V形式的QueryString:Generate & Copy Query Param (Key value)
- 复制JSON形式的请求体:Generate & Copy RequestBody (JSON)
- 复制相对路径URL:Generate & Copy Relation URL
- 复制全路径URL:Generate & Copy Full URL
- 在Java类上生成JSON并复制的功能
- 复制压缩格式的JSON:Convert to JSON(Compressed)
- 复制JSON:Convert to JSON