Intellij IDEA
什么是 IDEA
IDEA 全称 IntelliJ IDEA,是 Java 语言开发的集成环境,IntelliJ 在业界被公认为最好的 Java 开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE 支持、各类版本工具(git
、svn
、github
等)、JUnit、CVS 整合、代码分析、 创新的 GUI 设计等方面的功能可以说是超常的。IDEA 是 JetBrains 公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。它的旗舰版本还支持 HTML,CSS,PHP,MySQL,Python 等。免费版只支持 Java 等少数语言。
特色功能
- 智能的选取:在很多时候我们要选取某个方法,或某个循环或想一步一步从一个变量到整个类慢慢扩充着选取,IDEA就提供这种基于语法的选择,在默认设置中
Ctrl + W
,可以实现选取范围的不断扩充,这种方式在重构的时候尤其显得方便。 - 丰富的导航模式:IDEA 提供了丰富的导航查看模式,例如
Ctrl + E
显示最近打开过的文件,Ctrl + N
显示你希望显示的类名查找框(该框同样有智能补充功能,当你输入字母后IDEA将显示所有候选类名)。在最基本的 Project 视图中,你还可以选择多种的视图方式。 - 历史记录功能:不用通过版本管理服务器,单纯的 IDEA 就可以查看任何工程中文件的历史记录,在版本恢复时你可以很容易的将其恢复。
- JUnit 的完美支持
- 对重构的优越支持:IDEA 是所有 IDE 中最早支持重构的,其优秀的重构能力一直是其主要卖点之一。
- 编码辅助:Java 规范中提倡的
toString()
、hashCode()
、equals()
以及所有的get/set
方法,你可以不用进行任何的输入就可以实现代码的自动生成,从而把你从无聊的基本方法编码中解放出来。 - 灵活的排版功能:基本所有的 IDE 都有重排版功能,但仅有 IDEA 的是人性的,因为它支持排版模式的定制,你可以根据不同的项目要求采用不同的排版方式。
- XML 的完美支持:XML 全提示支持:所有流行框架的 XML 文件都支持全提示,谁用谁知道。
- 动态语法检测:任何不符合 Java 规范、自己预定义的规范、累赘都将在页面中加亮显示。
- 代码检查:对代码进行自动分析,检测不符合规范的,存在风险的代码,并加亮显示。
- 对 JSP 的完全支持:不需要任何的插件,完全支持 JSP。
- 智能编辑:代码输入过程中,自动补充方法或类。
- EJB 支持:不需要任何插件完全支持 EJB(6.0 支持 EJB 3.0)
- 列编辑模式:用过 UtralEdit 的肯定对其的列编辑模式赞赏不已,因为它减少了很多无聊的重复工作,而 IDEA 完全支持该模式,从而更加提高了编码效率。
- 预置模板:预置模板可以让你把经常用到的方法编辑进模板,使用时你只用输入简单的几个字母就可以完成全部代码的编写。例如使用比较高的
public static void main(String[] args){}
你可以在模板中预设pm
为该方法,输入时你只要输入pm
再按代码辅助键,IDEA 将完成代码的自动输入。 - 完美的自动代码完成:智能检查类中的方法,当发现方法名只有一个时自动完成代码输入,从而减少剩下代码的编写工作。
- 版本控制完美支持:集成了目前市面上常见的所有版本控制工具插件,包括
git
、svn
、github
,让开发人员在编程的工程中直接在 Intellij IDEA 里就能完成代码的提交、检出、解决冲突、查看版本控制服务器内容等等。 - 不使用代码的检查:自动检查代码中不使用的代码,并给出提示,从而使代码更高效。
- 智能代码:自动检查代码,发现与预置规范有出入的代码给出提示,若程序员同意修改自动完成修改。例如代码:
String str = "Hello Intellij " + "IDEA";
IDEA 将给出优化提示,若程序员同意修改 IDEA 将自动将代码修改为:String str = "Hello Intellij IDEA";
- 正则表达式的查找和替换功能:查找和替换支持正则表达式,从而提高效率。
- JavaDoc 预览支持:支持 JavaDoc 的预览功能,在 JavaDoc 代码中
Ctrl + Q
显示 JavaDoc 的结果,从而提高 DOC 文档的质量。 - 程序员意图支持:程序员编码时 IDEA 时时检测你的意图,或提供建议,或直接帮你完成代码。
第一个 IDEA WEB应用程序
Eclipse与Intellij IDEA区别:
新建 Java Web 项目
- 打开
IDEA
->Create New Project
- 选择
Java
->Java EE
->Web Application
选择工作空间
- 项目命名后选择存放的工作空间,项目就创建完成了
配置 JDK
- 选择
File
->Project Structure...
- 选择 JDK 的安装路径即可
配置 Tomcat
- 选择
Run
->Edit Configurations...
- 选择
+
号 ->Tomcat Server
->Local
- 选择 Tomcat 的安装路径即可
配置 Tomcat 本地部署
- 继续上一步,选择
Deployment
->+
号 ->Artifact...
- 选择
Server
配置自动更新
测试运行
- 选择需要运行的项目,点击
运行
图标 - 浏览器打开:``http://localhost:8080` 显示如下:
$END$
第一个 Maven WEB 应用程序
创建 Maven 项目
- 选择
File
->New
->Project...
- 选择
Maven
项目 - 填写项目信息
- 选择工作空间
Maven的目录结构
- Java Web 的 Maven 基本结构如下:
├─src
│ ├─main
│ │ ├─java
│ │ ├─resources
│ │ └─webapp
│ │ └─WEB-INF
│ │ └─web.xml
│ └─test
│ │ ├─java
│ │ └─resources
- 结构说明:
src
:源码目录
-
src/main/java
:Java 源码目录 -
src/main/resources
:资源文件目录 -
src/main/webapp
:Web 相关目录 -
src/test
:单元测试
IDEA Maven 项目管理
- 在 IDEA 界面的右侧
Maven Projects
选项,可以管理 Maven 项目的整个生命周期、插件、依赖等
完善 Maven Java Web 程序
POM.xml
- 修改
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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>cn.bdqn</groupId>
<artifactId>hello-maven</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>war</packaging>
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>log4j-over-slf4j</artifactId>
<version>1.7.25</version>
</dependency>
</dependencies>
</project>
- 配置说明:
-
packaging
:打包方式,这里是war
包,表示为 Java Web 应用程序 -
dependencies
:项目依赖配置,整个项目生命周期中所需的依赖都在这里配置
创建测试用 Servlet
- 创建一个
Servlet
用于测试请求
package cn.bdqn.hello.maven.servlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.getRequestDispatcher("/index.jsp").forward(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
this.doGet(req, resp);
}
}
创建测试用 JSP
- 创建一个
JSP
页面,用于测试请求
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
Hello Maven
</body>
</html>
创建 Log4J 的配置文件
- 在
src/main/resources
目录下创建log4j.properties
配置文件,内容如下:
log4j.rootLogger=INFO, console, file
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d %p [%c] - %m%n
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.File=logs/log.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.A3.MaxFileSize=1024KB
log4j.appender.A3.MaxBackupIndex=10
log4j.appender.file.layout.ConversionPattern=%d %p [%c] - %m%n
配置 web.xml
web.xml
配置文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<servlet>
<servlet-name>HelloServlet</servlet-name>
<servlet-class>cn.bdqn.hello.maven.servlet.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>
测试运行
- 按照之前章节
第一个 IDEA 应用程序
配置完Tomcat
后直接运行,打开浏览器访问http://localhost:8080/hello
显示如下:
Hello Maven
IDEA 常用快捷键总结:
调试代码的快捷键:
- F7(Step Into) 单步跳入 : 进入某个方法的代码内部观察代码执行情况
- F8(Step Over) 单步跳过 : 单步执行,不关心具体的执行过程,只关心具体的结果
- Shift+F9(Step Out) 单步返回 : 当执行了单步跳入进到方法之中进行代码观察了一半之后,发现不再需要继续观察了,则直接返回到跳入代码的位置.
- F9(Resume) 恢复执行 : 不再继续进行代码调试了,而直接进行代码的正常执行完毕
查询快捷键
- CTRL+N 查找类
- CTRL+SHIFT+N 查找文件
- CTRL+SHIFT+ALT+N 查 找类中的方法或变量
- CIRL+B 找变量的来源
- CTRL+ALT+B 找所有的子类
- CTRL+SHIFT+B 找变量的 类
- CTRL+G 定位行
- CTRL+F 在当前窗口查找文本
- CTRL+SHIFT+F 在指定窗口查找文本
- CTRL+R 在 当前窗口替换文本
- CTRL+SHIFT+R 在指定窗口替换文本
- ALT+SHIFT+C 查找修改的文件
- CTRL+E 最 近打开的文件
- F3 向下查找关键字出现位置
- SHIFT+F3 向上一个关键字出现位置
- F4 查找变量来源
- CTRL+ALT+F7 选 中的字符 查找工程出现的地方
- CTRL+SHIFT+O 弹出显示查找内容
SVN 管理
- 把SVN库添加到IDEA中 SETTING -> VERSION CONTROL -> VCS = SVBVERSION
自动代码
- ALT+回车 导入包,自动修正
- CTRL+ALT+L 格式化代码
- CTRL+ALT+I 自 动缩进
- CTRL+ALT+O 优化导入的类和包
- ALT+INSERT 生成代码(如GET,SET方法,构造函数等)
- CTRL+E 或者ALT+SHIFT+C 最近更改的代码
- CTRL+SHIFT+SPACE 自动补全代码
- CTRL+空格 代码提示
- CTRL+ALT+SPACE 类 名或接口名提示
- CTRL+P 方法参数提示
- CTRL+J 自动代码
- CTRL+ALT+T 把选中的代码放在 TRY{} IF{} ELSE{} 里
复制快捷方式
- F5 拷贝文件快捷方式
- CTRL+D 复制行
- CTRL+X 剪 切,删除行
- CTRL+SHIFT+V 可以复制多个文本
高亮
- CTRL+F 选中的文字,高亮显示 上下跳到下一个或者上一个
- F2 或SHIFT+F2 高亮错误或警告快速定位
- CTRL+SHIFT+F7 高亮显示多个关键字.
其他快捷方式
- CIRL+U 大小写切换
- CTRL+Z 倒退
- CTRL+SHIFT+Z 向 前
- CTRL+ALT+F12 资源管理器打开文件夹
- ALT+F1 查找文件所在目录位置
- SHIFT+ALT+INSERT 竖 编辑模式
- CTRL+/ 注释//
- CTRL+SHIFT+/ 注释/…/
- CTRL+W 选中代码,连续按会 有其他效果
- CTRL+B 快速打开光标处的类或方法
- ALT+ ←/→ 切换代码视图
- CTRL+ALT ←/→ 返回上次编辑的位置
- ALT+ ↑/↓ 在方法间快速移动定位
- SHIFT+F6 重构-重命名
- CTRL+H 显 示类结构图
- CTRL+Q 显示注释文档
- ALT+1 快速打开或隐藏工程面板
- CTRL+SHIFT+UP/DOWN 代码 向上/下移动。
- CTRL+UP/DOWN 光标跳转到第一行或最后一行下
- ESC 光标返回编辑框
- SHIFT+ESC 光 标返回编辑框,关闭无用的窗口