IntelliJIDEA介绍及应用

1 介绍IDEA-主要功能、主要优势

IDEA,全称 IntelliJ IDEA,是 Java 语言的集成开发环境,IDEA 在业界被公认为是最好的 java 开发工具之一,尤其在智能代码助手、代码自动提示、重构、javaEE支持、Ant、JUnit、CVS 整合、代码审查、创新的 GUI 设计等方面的功能可以说是超常的。

IntelliJ IDEA 在 2015 年的官网上这样介绍自己:

Excel at enterprise, mobile and web development with Java, Scala and Groovy, with all the latest modern technologies and frameworks available out of the box.

简明翻译:IntelliJ IDEA 主要用于支持 Java、Scala、Groovy 等语言的开发工具,同时具备支持目前主流的技术和框架,擅长于企业应用、移动应用和 Web 应用的开发。

IDEA 的主要功能介绍:

语言支持上:

IntelliJIDEA介绍及应用_第1张图片

其他支持:

IntelliJIDEA介绍及应用_第2张图片

IDEA 的主要优势:(相较于 Eclipse 而言)

① 强大的整合能力。比如:Git、Maven、Spring 等

② 提示功能的快速、便捷

③ 提示功能的范围广

④ 好用的快捷键和代码模板 private static final psf

Syso  --  System.out.println()

   Psf   ---  private static final

⑤ 精准搜索

2 IDEA的下载、安装

官网:https://www.jetbrains.com/idea/download/#section=windows

IDEA 分为两个版本:旗舰版(Ultimate)和社区版(Community)。

旗舰版收费(限 30 天免费试用),社区版免费,这和 Eclipse 有很大区别。

IntelliJIDEA介绍及应用_第3张图片

这里提供了不同操作系统下的两个不同版本的安装文件。

两个不同版本的详细对比,可以参照官网:

https://www.jetbrains.com/idea/features/editions_comparison_matrix.html

6. 官网提供的详细使用文档:

https://www.jetbrains.com/help/idea/meet-intellij-idea.html

安装:

IntelliJIDEA介绍及应用_第4张图片

IntelliJIDEA介绍及应用_第5张图片

确认 32 位版还是 64 位版

确认是否与.java、.groovy、.kt 格式文件进行关联,这里也可以选择不关联。

IntelliJIDEA介绍及应用_第6张图片

IntelliJIDEA介绍及应用_第7张图片

IntelliJIDEA介绍及应用_第8张图片

从安装上来看,IntelliJ IDEA 对硬件的要求似乎不是很高。可是实际在开发中其实并不是这样的,因为 IntelliJ IDEA 执行时会有大量的缓存、索引文件,所以如果你正在使用 Eclipse / MyEclipse,想通过 IntelliJ IDEA 来解决计算机的卡、慢等问题,这基本上是不可能的,本质上你应该对自己的硬件设备进行升级。

查看安装目录结构:

IntelliJIDEA介绍及应用_第9张图片

bin:容器,执行文件和启动参数等

help:快捷键文档和其他帮助文档

jre64:64 位java 运行环境

lib:idea 依赖的类库

license:各个插件许可

plugin:插件

其中:bin 目录下:

IntelliJIDEA介绍及应用_第10张图片

这里以我的电脑系统(64 位 windows7,16G 内存)为例,说明一下如何调整 VM 配

置文件:

1. 大家根据电脑系统的位数,选择 32 位的 VM 配置文件或者 64 位的 VM 配置文件

2. 32 位操作系统内存不会超过 4G,所以没有多大空间可以调整,建议不用调整了

3. 64 位操作系统中 8G 内存以下的机子或是静态页面开发者是无需修改的。

4. 64 位操作系统且内存大于 8G 的,如果你是开发大型项目、Java 项目或是 Android 项目,建议进行修改,常修改的就是下面 3 个参数:

IntelliJIDEA介绍及应用_第11张图片

1. -Xms128m,16 G 内存的机器可尝试设置为 -Xms512m

(设置初始的内存数,增加该值可以提高 Java 程序的启动速度。)

  1. -Xmx750m,16 G 内存的机器可尝试设置为 -Xmx1500m

(设置最大内存数,提高该值,可以减少内存 Garage 收集的频率,提高程序性能)

3.-XX:ReservedCodeCacheSize=240m,16G 内存的机器可尝试设置为

-XX:ReservedCodeCacheSize=500m

(保留代码占用的内存容量)

 

查看设置目录结构:

当我们第一次启动idea的时候,idea会自动的在我们的系统盘下的当前用户下生成一些设置和缓存目录。

这就是 IDEA 的各种配置的保存目录。这个设置目录有一个特性,就是你删除掉整个目录之后,重新启动 IntelliJ IDEA 会再自动帮你生成一个全新的默认配置,所以很多时候如果你把 IntelliJ IDEA 配置改坏了,没关系,删掉该目录,一切都会还原到默认。

3 IDEA的基本设置【Strings】

IntelliJ IDEA 有很多人性化的设置我们必须单独拿出来讲解,也因为这些人性化的设置让那些 IntelliJ IDEA 死忠粉更加死心塌地使用它和分享它。

进入设置界面:

IntelliJIDEA介绍及应用_第12张图片

目录结构如下:

IntelliJIDEA介绍及应用_第13张图片

1.Appearance & Behavior外观和行为设置

1.1 设置主题

IntelliJIDEA介绍及应用_第14张图片

这里默认提供了三套主题:IntelliJ,Darcula,Windows。这里可以根据自己的喜好进行选择。

1.2 设置窗体及菜单的字体及字体大小

IntelliJIDEA介绍及应用_第15张图片

1.3 补充:设置编辑区主题 (可忽略)

IDEA 默认提供了两个编辑区主题,可以通过如下的方式进行选择。

IntelliJIDEA介绍及应用_第16张图片

如果想要更多的主题效果的话,可以到如下的网站下载:http://www.riaway.com/,在这里我们给大家提供了一些已经下载好的主题在课件的主题文件夹中。

下载以后,导入主题:

(方式一)

file –> import setttings –> 选中下载的主题 jar 文件 –> 一路确认 –> 重启。

重启以后,新主题会自动启用。如果没有启用,可以如下方式选择:

IntelliJIDEA介绍及应用_第17张图片

下载以后,导入主题:

(方式二)

IntelliJIDEA介绍及应用_第18张图片

1.4 补充:通过插件(plugins)更换主题

喜欢黑色主题的话,还可以下载插件:Material Theme UI

IntelliJIDEA介绍及应用_第19张图片

点击按钮以后,在联网环境下搜索如下的插件-安装-重启 IDEA 即可:

IntelliJIDEA介绍及应用_第20张图片

如果对安装的主题插件不满意,还可以找到此插件,进行卸载 – 重启 IDEA 即可。

2. Editor - General

2.1 设置鼠标滚轮修改字体大小(可忽略)

IntelliJIDEA介绍及应用_第21张图片

我们可以勾选此设置后,增加 Ctrl + 鼠标滚轮 快捷键来控制代码字体大小显示。

2.2 设置鼠标悬浮提示

IntelliJIDEA介绍及应用_第22张图片

2.3 设置自动导包功能

IntelliJIDEA介绍及应用_第23张图片

Add unambiguous imports on the fly:自动导入不明确的结构

Optimize imports on the fly:自动帮我们优化导入的包

2.4 设置显示行号和方法间的分隔符

IntelliJIDEA介绍及应用_第24张图片

如上图红圈所示,可以勾选 Show line numbers:显示行数。我建议一般这个要勾选上。

如上图红圈所示,可以勾选 Show method separators: 显示方法分隔线。这种线有助于我们区分开方法,所以建议勾选上。

2.5 忽略大小写提示

IntelliJIDEA介绍及应用_第25张图片

IntelliJ IDEA 的代码提示和补充功能有一个特性:区分大小写。如上图标注所示,默认就是 First letter 区分大小写的。区分大小写的情况是这样的:比如我们在 Java 代码文件中输入 stringBuffer,IntelliJ IDEA 默认是不会帮我们提示或是代码补充的,但是如果我们输入StringBuffer 就可以进行代码提示和补充。如果想不区分大小写的话,改为 None 选项即可

2.6 设置取消单行显示 tabs 的操作

IntelliJIDEA介绍及应用_第26张图片

如上图标注所示,在打开很多文件的时候,IntelliJ IDEA 默认是把所有打开的文件名 Tab 单行显示的。但是我个人现在的习惯是使用多行,多行效率比单行高,因为单行会隐藏超过界面部分 Tab,这样找文件不方便。

3. Editor – Font

3.1 设置默认的字体、字体大小、字体行间距

IntelliJIDEA介绍及应用_第27张图片

4. Editor – Color Scheme

4.1 修改当前主题的字体、字体大小、字体行间距(可忽略)

如果当前主题不希望使用默认字体、字体大小、字体行间距,还可以单独设置:

IntelliJIDEA介绍及应用_第28张图片

4.2 修改当前主题的控制台输出的字体及字体大小(可忽略)

IntelliJIDEA介绍及应用_第29张图片

4.3 修改代码中注释的字体颜色

IntelliJIDEA介绍及应用_第30张图片

Doc Comment – Text:修改文档注释的字体颜色

Block comment:修改多行注释的字体颜色

Line comment:修改当行注释的字体颜色

5. Editor – Code Style

5.1 设置超过指定 import 个数,改为* (可忽略)

IntelliJIDEA介绍及应用_第31张图片

6. Editor – File and Code Templates

6.1 修改类头的文档注释信息

IntelliJIDEA介绍及应用_第32张图片

7. Editor – File Encodings

7.1 设置项目文件编码

IntelliJIDEA介绍及应用_第33张图片

说明:Transparent native-to-ascii conversion 主要用于转换 ascii,一般都要勾选,不然 Properties 文件中的注释显示的都不会是中文.

7.2 设置当前源文件的编码(可忽略)

IntelliJIDEA介绍及应用_第34张图片

IntelliJIDEA介绍及应用_第35张图片

对单独文件的编码修改还可以点击右下角的编码设置区。如果代码内容中包含中

文,则会弹出如上的操作选择。其中:

①Reload 表示使用新编码重新加载,新编码不会保存到文件中,重新打开此文件,旧编码是什么依旧还是什么。

②Convert 表示使用新编码进行转换,新编码会保存到文件中,重新打开此文件,新编码是什么则是什么。

③含有中文的代码文件,Convert 之后可能会使中文变成乱码,所以在转换成请做好备份,不然可能出现转换过程变成乱码,无法还原。

8. Build,Execution,Deployment

8.1 设置自动编译

IntelliJIDEA介绍及应用_第36张图片

构建就是以我们编写的 java 代码、框架配置文件、国际化等其他资源文件、JSP 页面和图片等资源作为“原材料”,去“生产”出一个可以运行的项目的过程。

Intellij Idea 默认状态为不自动编译状态,Eclipse 默认为自动编译:很多朋友都是从 Eclipse 转到 Intellij 的,这常常导致我们在需要操作 class 文件时忘记对修改后的 java 类文件进行重新编译,从而对旧文件进行了操作.

9.设置代码水平或垂直显示

IntelliJIDEA介绍及应用_第37张图片

4 通过IDEA创建模块

1. 在 Eclipse 中我们有 Workspace(工作空间)和 Project(工程)的概念,在 IDEA中只有 Project(工程)和 Module(模块)的概念。

这里的对应关系为:

IDEA 官网说明:

An Eclipse workspace is similar to a project in IntelliJ IDEA

An Eclipse project maps to a module in IntelliJ IDEA

翻译:

Eclipse 中 workspace 相当于 IDEA 中的 Project

Eclipse 中 Project 相当于 IDEA 中的 Module

这个地方刚开始用的时候会很容易理不清它们之间的关系。

2. 从 Eclipse 转过来的人总是下意识地要在同一个窗口管理 n 个项目,这在IntelliJ IDEA 是无法做到的。IntelliJ IDEA 提供的解决方案是打开多个项目实例,即打开多个项目窗口。即:一个 Project 打开一个 Window 窗口。

3. 在 IntelliJ IDEA 中 Project 是最顶级的级别,次级别是 Module。一个 Project可以有多个 Module。目前主流的大型项目都是分布式部署的,结构都是类似这种多 Module 结构。

IntelliJIDEA介绍及应用_第38张图片

这类项目一般是这样划分的,比如:core Module、web Module、plugin Module、solr Module 等等,模块之间彼此可以相互依赖。通过这些 Module 的命名也可以看出,他们之间都是处于同一个项目业务下的模块,彼此之间是有不可分割的业务关系的。

举例:

IntelliJIDEA介绍及应用_第39张图片

4. 相比较于多 Module 项目,小项目就无需搞得这么复杂。只有一个 Module 的结构 IntelliJ IDEA 也是支持的,并且 IntelliJ IDEA 创建项目的时候,默认就是单Module 的结构的。

下面,我们演示如何创建 Module:

IntelliJIDEA介绍及应用_第40张图片

IntelliJIDEA介绍及应用_第41张图片

接着选择 Next:

IntelliJIDEA介绍及应用_第42张图片

创建好模块之后,我们可以在 Module 的 src 里写代码,此时 Project 工程下的 src 就没什么用了,可以删掉。

6.如何删除模块

IntelliJIDEA介绍及应用_第43张图片

IntelliJIDEA介绍及应用_第44张图片IntelliJIDEA介绍及应用_第45张图片IntelliJIDEA介绍及应用_第46张图片

此时的删除,会从硬盘上将此 module 删除掉。

7.查看项目配置

IntelliJIDEA介绍及应用_第47张图片

进入项目结构:

IntelliJIDEA介绍及应用_第48张图片

5 基于IDEA的版本控制(Version Control)Git

不管是个人开发还是团队开发,版本控制都会被使用。而 IDEA 也很好的集成了版本控制的相关结构。

IntelliJIDEA介绍及应用_第49张图片

IntelliJIDEA介绍及应用_第50张图片

intelliJ IDEA 对版本控制的支持是以插件化的方式来实现的。旗舰版默认支持目前主流的版本控制软件:CVS、Subversion(SVN)、Git、Mercurial、Perforce、TFS。又因为目前太多人使用 Github 进行协同或是项目版本管理,所以 IntelliJ IDEA 同时自带了 Github 插件,方便 Checkout 和管理你的Github 项目

很多人认为 IntelliJ IDEA 自带了 SVN 或是 Git 等版本控制工具,认为只要安装了 IntelliJ IDEA 就可以完全使用版本控制应有的功能。这完全是一种错误的解读,IntelliJ IDEA 是自带对这些版本控制工具的插件支持,但是该装什么版本控制客户端还是要照样装的。

在实际开发中,发现在 IDEA 中使用 SVN 的经历不算愉快,经常会遇到很多问题,比如紧急情况下 IDEA 无法更新、提交等。所以这里,我们学习下在 IDEA中使用 Git

1. 下载 Git 的客户端

Git 的 msysGit 官网下载:https://git-scm.com/

Git 客户端 TortoiseGit 官网下载:http://download.tortoisegit.org/tgit/

IntelliJIDEA介绍及应用_第51张图片

 

IntelliJIDEA介绍及应用_第52张图片

IntelliJIDEA介绍及应用_第53张图片

  1. 安装 Git 的客户端

IntelliJIDEA介绍及应用_第54张图片

IntelliJIDEA介绍及应用_第55张图片

IntelliJIDEA介绍及应用_第56张图片

IntelliJIDEA介绍及应用_第57张图片

IntelliJIDEA介绍及应用_第58张图片

 

在“Adjusting your PATH environment”选项中,默认选项是“Use Git from the

Windows Command Prompt”,这样在 Windows 的命令行 cmd 中也可以运行 git 命令了,

点击“Next

 

IntelliJIDEA介绍及应用_第59张图片

配置行结束标记,保持默认“Checkout Windows-style, commit Unix-style line

endings”.

IntelliJIDEA介绍及应用_第60张图片

 

在终端模拟器选择页面,默认即可,配置后 Git Gash 的终端比较易用。然后点击

“Next”按钮

IntelliJIDEA介绍及应用_第61张图片

IntelliJIDEA介绍及应用_第62张图片

最后配置 Git 额外选择默认即可。

IntelliJIDEA介绍及应用_第63张图片

安装成功

安装 Git 完成之后,会在桌面创建 Git Bash 快捷方式,或在开始菜单打开 Git Bash

 

桌面 Git Bash 快捷方式

IntelliJIDEA介绍及应用_第64张图片

开始菜单打开 Git Bash

 

IntelliJIDEA介绍及应用_第65张图片

 

  1. 关联 git.exe

  打开setting设置git客户端的安装目录

IntelliJIDEA介绍及应用_第66张图片

 

  1. 关联 gitee上的账户,并测试连接
    1. 注册一个gitee账号。

IntelliJIDEA介绍及应用_第67张图片

登陆

4.2在 gitee上创建账户下的一个新的仓库作为测试:

4.3关联 gitee上的账户,并测试连接

4.4从当前登录的 gitee账号上直接 Checkout 项目

4.5.本地代码分享到 gitee

4.6.Git 的常用操作

IntelliJIDEA介绍及应用_第68张图片

clone:拷贝远程仓库

commit:本地提交

push:远程提交

pull:更新到本地

7.没有使用 Git 时本地历史记录的查看

 

IntelliJIDEA介绍及应用_第69张图片

 

IntelliJIDEA介绍及应用_第70张图片

即使我们项目没有使用版本控制功能,IntelliJ IDEA 也给我们提供了本地文件历史记录。

6 IDEA中创建聚合项目

IntelliJIDEA介绍及应用_第71张图片IntelliJIDEA介绍及应用_第72张图片

IntelliJIDEA介绍及应用_第73张图片

IntelliJIDEA介绍及应用_第74张图片

创建完后,删除生成的src目录

IntelliJIDEA介绍及应用_第75张图片

修改打包方式为pom

wangxing-parent:pom.xml

com.wangxing
wangxing-parent
pom
1.0-SNAPSHOT

注意:maven中有3种工程:

pom工程:用在父级或聚合工程中,用来做jar包的版本控制。

war工程:会打包成war,发布在服务器上。如网站或服务。

jar工程:打包成jar用作jar包使用。

集中定义依赖jar版本号



    4.12
    4.1.3.RELEASE
    3.2.8
    1.2.2
    1.2.15
    5.1.32
    1.6.6
    2.4.2
    1.0.9
    4.3.5
    1.2
    2.5
    2.0
    2.5
    3.3.2
    1.3.2
    3.3
    3.4.2
    0.9.1
    1.3.1
    2.7.2
    4.10.3
    2.3.23
    2.2.2

添加依赖[不需要直接编写版本号]



   
       
       
            joda-time
            joda-time
            ${joda-time.version}
       

       
       
            org.apache.commons
            commons-lang3
            ${commons-lang3.version}
       

       
            org.apache.commons
            commons-io
            ${commons-io.version}
       

       
            commons-net
            commons-net
            ${commons-net.version}
       

       
       
            com.fasterxml.jackson.core
            jackson-databind
            ${jackson.version}
       

       
       
            org.apache.httpcomponents
            httpclient
            ${httpclient.version}
       

       
       
            junit
            junit
            ${junit.version}
            test
       

       
       
            org.slf4j
            slf4j-log4j12
            ${slf4j.version}
       

       
       
            org.mybatis
            mybatis
            ${mybatis.version}
       

       
            org.mybatis
            mybatis-spring
            ${mybatis.spring.version}
       

       
            com.github.miemiedev
            mybatis-paginator
            ${mybatis.paginator.version}
       

       
            com.github.pagehelper
            pagehelper
            ${pagehelper.version}
       

       
       
            mysql
            mysql-connector-java
            ${mysql.version}
       

       
       
            com.alibaba
            druid
            ${druid.version}
        

       
       
            org.springframework
            spring-context
            ${spring.version}
       

       
            org.springframework
            spring-beans
            ${spring.version}
       

       
            org.springframework
            spring-webmvc
            ${spring.version}
       

       
            org.springframework
            spring-jdbc
            ${spring.version}
       

       
            org.springframework
            spring-aspects
            ${spring.version}
       

       
            org.springframework
            spring-context-support
            ${spring.version}
       

       
       
            jstl
            jstl
            ${jstl.version}
       

       
            javax.servlet
            servlet-api
            ${servlet-api.version}
            provided
       

       
            javax.servlet
            jsp-api
            ${jsp-api.version}
            provided
       

       
       
            commons-fileupload
            commons-fileupload
            ${commons-fileupload.version}
       

       
       
            redis.clients
            jedis
            ${jedis.version}
       

       
       
            org.apache.solr
            solr-solrj
            ${solrj.version}
       

       
            org.freemarker
            freemarker
            ${freemarker.version}
       

       
       
            org.quartz-scheduler
            quartz
            ${quartz.version}
       

   

配置插件【省略】

创建子项目wangxing-pojo【mavne   jar】

  1. 右键wangxing-parent---new---module

IntelliJIDEA介绍及应用_第76张图片

IntelliJIDEA介绍及应用_第77张图片

IntelliJIDEA介绍及应用_第78张图片

 

IntelliJIDEA介绍及应用_第79张图片

 

创建子项目wangxing-web【mavne   war】

1.右键wangxing-parent---new---module

IntelliJIDEA介绍及应用_第80张图片

IntelliJIDEA介绍及应用_第81张图片

IntelliJIDEA介绍及应用_第82张图片

IntelliJIDEA介绍及应用_第83张图片

创建好项目以后配置spring-webmvc的依赖包【没有版本号】



    org.springframework
    spring-webmvc

配置tomcat7的服务器插件



    org.apache.tomcat.maven
    tomcat7-maven-plugin
   
       
        9090
       
        /web
   

完善子项目的项目结构

 

在wangxingweb子项目中的web.xml文件中配置字符过滤器和中央控制器

 

在wangxingweb子项目中的resources中创建springmvc的配置文件


       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context.xsd">
   
   
   
   

 

创建控制器

package com.wanxing.web.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

@Controller
public class WangXingController {
    @RequestMapping("/testWeb.do")
   public ModelAndView testWeb(){
        System.out.println("WangXingController----");
       ModelAndView  modelAndView=new ModelAndView();
       modelAndView.setViewName("index.jsp");
       return  modelAndView;
   }
}

 

配置服务器

Run-Edit Configurations

IntelliJIDEA介绍及应用_第84张图片

IntelliJIDEA介绍及应用_第85张图片

Manven Projects视图中去安装部署项目

IntelliJIDEA介绍及应用_第86张图片

IntelliJIDEA介绍及应用_第87张图片

运行

IntelliJIDEA介绍及应用_第88张图片

http://localhost:9090/web/testWeb.do

IntelliJIDEA介绍及应用_第89张图片

你可能感兴趣的:(IntelliJIDEA介绍及应用)