Idea实战使用

笔记大纲
出上图大纲:
还有
1setting配置导出导入
2.常见错误分析
3.引入指定DTD文件

一、 IDEA 介绍

1 IDEA 简介

IDEA 全称 IntelliJ IDEA,是用于 java 语言开发的集成环境(也可用于其他语言),IntelliJ在业界被公认为最好的 java 开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE支持、Ant、JUnit、CVS 整合、代码审查、 创新的 GUI 设计等方面的功能可以说是超常的。 IDEA 是 JetBrains 公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。
对于 IDEA,JetBrans 公司提出的最新口号是:Capable and Ergomomic IDE for JVM ,翻译过来就是面向 JVM、功能强大且符合人体工程学的 IDE。面向 JVM 的是指该 IED 支持 Java、 Scale 等运行于 JVM 之上的所有语言。

2 IDEA 版本说明

IDEA 共分为两大版本
商业版:旗舰版功能强大
免费版:社区版功能单一

3 IDEA 特点

所提倡的是智能编码,是减少程序员的工作

3.1智能的选取

在很多时候我们要选取某个方法,或某个循环或想一步一步从一个变量到整个类慢慢扩充着选取,IDEA 就提供这种基于语法的选择,在默认设置中 Ctrl+W,可以实现选取范围的不断扩充,这种方式在重构的时候尤其显得方便。

3.2丰富的导航模式

IDEA 提供了丰富的导航查看模式,例如 Ctrl+E 显示最近打开过的文件,Ctrl+N显示你希望显示的类名查找框(该框同样有智能补充功能,当你输入字母后 IDEA 小风 Java 实战系列教程将显示所有候选类名)。在最基本的 project 视图中,你还可以选择多种的视图方式。

3.3历史记录功能

不用通过版本管理服务器,单纯的 IDEA 就可以查看任何工程中文件的历史记录,在版本恢复时你可以很容易的将其恢复。
JUnit 的完美支持

3.4对重构的优越支持

IDEA 是所有 IDE 中最早支持重构的,其优秀的重构能力一直是其主要卖点之一。

3.5编码辅助

Java 规范中提倡的 toString()、hashCode()、equals()以及所有的 get/set 方法,你可以不用进行任何的输入就可以实现代码的自动生成,从而把你从无聊的基本方法编码中解放出来。

3.6灵活的排版功能

基本所有的 IDE 都有重排版功能,但仅有 IDEA 的是人性的,因为它支持排版模式的定制,你可以根据不同的项目要求采用不同的排版方式。
XML 的完美支持
xml 全提示支持:所有流行框架的 xml 文件都支持全提示,谁用谁知道。

3.7动态语法检测

任何不符合 java 规范、自己预定义的规范、累赘都将在页面中加亮显示。

3.8代码检查

对代码进行自动分析,检测不符合规范的,存在风险的代码,并加亮显示。

3.9对 JSP 的完全支持

不需要任何的插件,完全支持 JSP。

3.10智能编辑

代码输入过程中,自动补充方法或类。

3.11EJB 支持

不需要任何插件完全支持 EJB(6.0 支持 EJB3.0)

3.12列编辑模式

用过 UtralEdit 的肯定对其的列编辑模式赞赏不已,因为它减少了很多无聊的重复工作,而 IDEA 完全支持该模式,从而更加提高了编码效率。

3.13预置模板

预置模板可以让你把经常用到的方法编辑进模板,使用时你只用输入简单的几个字母就可以完成全部代码的编写。例如使用比较高的 public static voidmain(String[] args){}你可以在模板中预设 pm 为该方法,输入时你只要输入 pm 再按代码辅助键,IDEA 将完成代码的自动输入。

3.14完美的自动代码完成

智能检查类中的方法,当发现方法名只有一个时自动完成代码输入,从而减少剩下代码的编写工作。

3.15版本控制完美支持

集成了目前市面上常见的所有版本控制工具插件,包括 git、svn、github,让开发人员在编程的工程中直接在 intellij idea 里就能完成代码的提交、检出、解决冲突、查看版本控制服务器内容等等。

3.16不使用代码的检查

自动检查代码中不使用的代码,并给出提示,从而使代码更高效。

3.17智能代码

自动检查代码,发现与预置规范有出入的代码给出提示,若程序员同意修改自动完成修改。例如代码:String str = "Hello Intellij " + “IDEA”; IDEA 将给出优化提示,若程序员同意修改 IDEA 将自动将代码修改为:String str = “Hello Intellij IDEA”;

3.18正则表达式的查找和替换功能

查找和替换支持正则表达式,从而提高效率。

3.19JavaDoc 预览支持

支持 JavaDoc 的预览功能,在 JavaDoc 代码中 Ctrl+Q 显示 JavaDoc 的结果,从而提高 doc 文档的质量。

3.20程序员意图支持

程序员编码时 IDEA 时时检测你的意图,或提供建议,或直接帮你完成代码。不需要再使用 CTR+S 不停的保存代码

二、 IDEA 安装

IDEA 版本:ideaIU-2017.3.1

1 IDEA 官网

在这里插入图片描述

2 如何安装 IDEA

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3 IDEA 破解

3.1将 jar 包拷贝到 idea 安装完毕的 bin 目录下

在这里插入图片描述

3.2修改 idea 的 bin 目录下的配置文件

Idea.exe.vmoptions
Idea64.exe.vmoptions
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.3通过激活码,激活 Idea

在这里插入图片描述

4 配置 IDEA

在这里插入图片描述

4.1配置字体与大小

在这里插入图片描述

4.2配置 Idea 的主题风格

在这里插入图片描述

4.3配置 Maven

在这里插入图片描述

三、 IDEA 中的项目创建

1 创建 java 项目

1.1启动时创建项目

在这里插入图片描述

1.2配置 JDK

在这里插入图片描述

1.3选择项目模板

在这里插入图片描述

1.4指定项目存放位置以及项目名称

在这里插入图片描述

1.5隐藏 IDEA 的项目配置文件

在这里插入图片描述

1.6Main 方法的运行方式
1.6.1 点击菜单栏中的运行按钮

在这里插入图片描述

1.6.2 点击鼠标的右键,通过菜单中的选项来运行

在这里插入图片描述

2 快捷键使用

2.1CTR+N 搜索类
2.2CTR+SHIT+N 搜索文件
2.3CTR+ALT+空格 代码提示(类似于 ALT+/)
2.4ALT+F7 查询在某处使用
2.5CTR+Q 查看代码提示及内容
2.6CTR+B 查看类的声明 还可以直接按住:CTR 再点击鼠标
(和 eclipse 的用
2.7法是一样的)
2.8CTR+F12 查看文件列表(File Structure)
2.9SHIFT+F6 重命名。
2.10ALT+INSERT :生成 getter 和 setter 的方法
2.11CTR+ALT+T 选中某一个段代码进行 try catch
2.12CTR+SHIT+空格 :新建类时 在 new 后面使用 (提示自
动创建类)
2.13CTR+ALT+B :查看接口或者抽象类的子类。
2.14CTR+SHIT+/ :注释(整体注释)
2.15CTR+/ :行注释
2.16CTR+D :换行 并复制
2.17CTR+Y : 删除当前行
2.18 alt+1 回到项目窗口
2.19 esc 回到代码窗口
Shift + F10 运行当前类
Alt + Shift + F10 选择一个类执行run/debug/coverage(测试用例覆盖率)操作
Shift + Ctrl + ;运行最近使用过的测试类
Run Anything 这个需要自定义 可以执行任何可执行类、测试方法
大小写转换

  • Ctrl + Shift + U
    ctrl +d 复制当前行
    ctrl+y 删除当前行
    ctrl+z撤销
    shift+ctrl+z 取消撤销操作
    ctrl + alt + v 自动填充变量
    ctrl+f12 查看当前类的大纲
    Ctrl+Shift+上下键 上下移动代码
    ctrl+shift+alt+u 在一个类里面查看类的继承关系 ctrl + h 也可以查看类似的
    ctrl+alt + h 点击方法然后执行 ctrl+alt + h 查看方法的调用层级
    断点
    普通断点
    条件断点
    Evaluate Expression (断点求值)
    run to cursor (跳到光标处进行断点)
    set value (断点过程中修改值) debug下面的窗口 右键改的值,然后点击set value
    高效定位
    项目之间的跳转
  • 界面位置Windows - > Next/Prev Proj…
  • 上一个项目Alt + Ctrl + [
  • 下一个项目Alt + Ctrl + ]
    文件之间跳转
  • Ctrl + E
    上次编辑的地方/跳转回来
  • Navigate -> Last Edit Location
  • Navigate -> Next Edit Location
    上次浏览的地方/当前位置浏览之后浏览过的地方
  • Ctrl + Alt + 左箭头/右箭头
    打开的类上面安旭跳转 alt+左箭头或者右箭头

重命名 Shift + F6

  • 可以重构类名、函数名、文件名等
    更改函数签名 Ctrl + F6 同意重构调用方法 (或者在方法调用的地方修改后 alt+enter直接修改方法)
    3提取为局部变量 Ctrl + Alt + V
  • refactor -> Extract -> variable
    4提取为静态不可变变量
  • Ctrl + Alt + C
  • public static final
  • refactor -> Extract -> constant
    5提取为内部区域变量
  • Ctrl + Alt + F
  • private static final
  • refactor -> Extract -> field
    6提取成员变量为当前方法的参数
  • Ctrl + Alt + P
  • refactor -> Extract -> parameter
    7提取方法
  • Ctrl + Alt + M
  • refactor -> Extract -> Method
    自动补全函数括号、分号、当前行缩进
    Ctrl + Shift + Enter
    Show Intention Action(Alt + Enter智能提示)

3 使用 Eclipse 方式的快捷键

在这里插入图片描述

4 IDEA 中的代码模板

4.1代码提示模板

在这里插入图片描述
在这里插入图片描述

4.2设置组件内容模板

在这里插入图片描述

4.3注释模板

4.3.1 类注释模板

在这里插入图片描述

/**

*	@Auther: http://www.bjsxt.com

*	@Date: ${DATE}

*	@Description: ${PACKAGE_NAME}

*	@version: 1.0

*/

4.3.2 方法注释模板

在这里插入图片描述

/**

*	功能描述:

*	@param: $param$

*	@return: $return$

*	@auther: $user$

*	@date: $date$ $time$ */

引入外部DTD文件

打开file——Settings…(快捷键ctrl+alt+s);
找到Languages&Frameworks——Schemas and DTDs
在这里插入图片描述
右侧的External Schemas and DTDs窗口中点击添加按钮。
在这里插入图片描述
在这里插入图片描述

IDEA编辑器设置完毕后的settings.jar

简介

每次重装系统后,IDEA的快捷的都要重新设置太麻烦了.
我现在保存该jar包,用于后期一直使用.
导出步骤
1.选中settings
在这里插入图片描述
2.导出settings
在这里插入图片描述
导入settings.jar
导入的步骤正好是相反.

5 创建 Web 工程

5.1创建工程

在这里插入图片描述
在这里插入图片描述

5.4去掉参数标记

在这里插入图片描述

5.5配置项目访问路径

5.5.1 默认访问路径问 /
5.5.2 修改访问路径

在这里插入图片描述
在这里插入图片描述

四、 创建 Maven 项目

1 配置 Maven

在这里插入图片描述

2 创建普通 Maven 项目

2.1创建项目

在这里插入图片描述
在这里插入图片描述

2.2配置项目构建插件

-DarchetypeCatalog=internal

在这里插入图片描述

3 普通 Maven 项目开发过程

3.1需求

将 jsp 中的表单数据提交到 servlet 中,并在控制台打印表单信息。

3.2在项目中创建目录

在这里插入图片描述

3.3修改目录类

在这里插入图片描述

3.4编写业务

3.4.1 修改 pom 文件
3.5启动 Maven 的 Tomcat 插件

在这里插入图片描述
本地maven仓库清理(.bat)

set REPOSITORY_PATH=D:\repository
rem 正在搜索...
for /f "delims=" %%i in ('dir /b /s "%REPOSITORY_PATH%\*lastUpdated*"') do (
    del /s /q %%i
)
rem 搜索完毕
pause

五、 创建 Maven 的聚合工程

1 项目结构

在这里插入图片描述

2 创建项目

在这里插入图片描述
在这里插入图片描述

3 创建子模块

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

DepencyManagement和dependencies的区别

在父pom的 里引入的依赖子项目会继承,也就说,只要在父pom的里引入的东西,子项目就可以直接用

负责管理子项目的依赖版本。也就是说,在这里引入的依赖,子项目不会继承,子项目要用到的依赖还是要子项目自己去进行引入,但是,子项目在引用时是没有版本号的,版本号在父pom的 里定义好了。

1、DepencyManagement应用场景

当我们的项目模块很多的时候,我们使用Maven管理项目非常方便,帮助我们管理构建、文档、报告、依赖、scms、发布、分发的方法。可以方便的编译代码、进行依赖管理、管理二进制库等等。
由于我们的模块很多,所以我们又抽象了一层,抽出一个itoo-base-parent来管理子项目的公共的依赖。为了项目的正确运行,必须让所有的子项目使用依赖项的统一版本,必须确保应用的各个项目的依赖项和版本一致,才能保证测试的和发布的是相同的结果。
在我们项目顶层的POM文件中,我们会看到dependencyManagement元素。通过它元素来管理jar包的版本,让子项目中引用一个依赖而不用显示的列出版本号。Maven会沿着父子层次向上走,直到找到一个拥有dependencyManagement元素的项目,然后它就会使用在这个dependencyManagement元素中指定的版本号。

这样做的好处:统一管理项目的版本号,确保应用的各个项目的依赖和版本一致,才能保证测试的和发布的是相同的成果,因此,在顶层pom中定义共同的依赖关系。同时可以避免在每个使用的子项目中都声明一个版本号,这样想升级或者切换到另一个版本时,只需要在父类容器里更新,不需要任何一个子项目的修改;如果某个子项目需要另外一个版本号时,只需要在dependencies中声明一个版本号即可。子类就会使用子类声明的版本号,不继承于父类版本号。

2、Dependencies
相对于dependencyManagement,所有生命在dependencies里的依赖都会自动引入,并默认被所有的子项目继承。
在这里插入图片描述
父类模块

<?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>com.xql</groupId>
  <artifactId>manager</artifactId>
  <packaging>pom</packaging>
  <version>1.0-SNAPSHOT</version>
  <modules>
    <module>manager-pojo</module>
    <module>manager-mapper</module>
    <module>manager-service</module>
    <module>manager-web</module>
  </modules>

  <name>Maven</name>
  <!-- 对依赖的坐标的版本做集中管理 -->
  <properties>
    <junit.version>4.12</junit.version>
    <struts.version>2.3.16.3</struts.version>
    <mybatis.version>3.1.1</mybatis.version>
    <pagehelper.version>5.1.2</pagehelper.version>
    <oracle.version>11.2.0.2.0</oracle.version>
    <servlet.version>3.1.0</servlet.version>
    <log4j.version>1.2.7</log4j.version>
    <jstl.version>1.2.1</jstl.version>
    <jsp.version>2.0</jsp.version>
    <tomcat.version>2.2</tomcat.version>
  </properties>
  <!-- 依赖jar包配置 -->
  <dependencyManagement>
    <dependencies>
      <!-- 配置单元测试 -->
      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>${junit.version}</version>
      </dependency>
      <!-- 配置Servlet -->
      <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>${servlet.version}</version>
        <scope>provided</scope>
      </dependency>
      <!-- 配置struts2核心jar -->
      <!-- 配置struts2核心jar -->
      <dependency>
        <groupId>org.apache.struts</groupId>
        <artifactId>struts2-core</artifactId>
        <version>${struts.version}</version>
      </dependency>

      <!-- 配置struts2核心jar -->
      <dependency>
        <groupId>org.apache.struts.xwork</groupId>
        <artifactId>xwork-core</artifactId>
        <version>${struts.version}</version>
      </dependency>

      <!-- 配置struts2缺失jar -->
      <dependency>
        <groupId>commons-logging</groupId>
        <artifactId>commons-logging</artifactId>
        <version>1.1.3</version>
      </dependency>

      <!-- mybatis核心jar -->
      <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>${mybatis.version}</version>
      </dependency>

      <!-- ojdbc连接数据库驱动 -->
      <dependency>
        <groupId>com.oracle</groupId>
        <artifactId>ojdbc5</artifactId>
        <version>${oracle.version}</version>
      </dependency>

      <!-- log4j.jar包 -->
      <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>${log4j.version}</version>
      </dependency>
      <!-- 配置jstl标签库 -->
      <dependency>
        <groupId>org.apache.taglibs</groupId>
        <artifactId>taglibs-standard-spec</artifactId>
        <version>${jstl.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.taglibs</groupId>
        <artifactId>taglibs-standard-impl</artifactId>
        <version>${jstl.version}</version>
      </dependency>
      <!-- mybatis分页插件jar包 -->
      <dependency>
        <groupId>com.github.pagehelper</groupId>
        <artifactId>pagehelper</artifactId>
        <version>${pagehelper.version}</version>
      </dependency>
      <!-- https://mvnrepository.com/artifact/commons-codec/commons-codec -->
      <dependency>
        <groupId>commons-codec</groupId>
        <artifactId>commons-codec</artifactId>
        <version>1.10</version>
      </dependency>
      <!-- https://mvnrepository.com/artifact/javax.activation/activation -->
      <dependency>
        <groupId>javax.activation</groupId>
        <artifactId>activation</artifactId>
        <version>1.1.1</version>
      </dependency>
      <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-email -->
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-email</artifactId>
        <version>1.4</version>
      </dependency>
      <!-- https://mvnrepository.com/artifact/javax.mail/mail -->
      <dependency>
        <groupId>javax.mail</groupId>
        <artifactId>mail</artifactId>
        <version>1.4.1</version>
      </dependency>
    </dependencies>
  </dependencyManagement>
  <!-- 配置资源拷贝插件 -->
  <build>
    <resources>
      <resource>
        <directory>src/main/java</directory>
        <includes>
        <include>**/*.xml</include>
        </includes>
      </resource>
      <resource>
        <directory>src/main/resources</directory>
        <includes>
          <include>**/*.xml</include>
        </includes>
      </resource>
    </resources>
    <!-- 配置tomcat插件 -->
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.tomcat.maven</groupId>
          <artifactId>tomcat7-maven-plugin</artifactId>
          <version>${tomcat.version}</version>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
</project>

子类pojo

<?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">
    <parent>
        <artifactId>manager</artifactId>
        <groupId>com.xql</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>manager-mapper</artifactId>

    <name>manager-mapper</name>
    <!-- jar包依赖配置 -->
    <dependencies>
        <!-- 实体类 -->
        <dependency>
            <groupId>com.xql</groupId>
            <artifactId>manager-pojo</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
        <!-- oracle -->
        <!-- ojdbc连接数据库驱动 -->
        <dependency>
            <groupId>com.oracle</groupId>
            <artifactId>ojdbc5</artifactId>
        </dependency>
        <!-- mybatis核心jar -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
        </dependency>
        
    </dependencies>
</project>

3、区别
dependencies即使在子项目中不写该依赖项,那么子项目仍然会从父项目中继承该依赖项(全部继承)

dependencyManagement里只是声明依赖,并不实现引入,因此子项目需要显示的声明需要用的依赖。如果不在子项目中声明依赖,是不会从父项目中继承下来的;只有在子项目中写了该依赖项,并且没有指定具体版本,才会从父项目中继承该项,并且version和scope都读取自父pom;另外如果子项目中指定了版本号,那么会使用子项目中指定的jar版本。

Maven约定优于配置

   它提出这一概念,为项目提供合理的默认行为,无需不必要的配置。提供了默认的目录 

src ——> 源代码和测试代码的根目录

main 应用代码的源目录

java 源代码

resources 项目的资源文件

test 测试代码的源目录

java 测试代码

resources 测试的资源文件

target 编译后的类文件、jar文件等

对于Maven约定优于配置的理解,一方面对于小型项目基本满足我们的需要基本不需要自己配置东西,使用Maven已经配置好的,快速上手,学习成本降低;另一方面,对于不满足我们需要的还可以自定义设置,体现了灵活性。配置大量减少了,随着项目变的越复杂,这种优势就越明显。

8.3.2 Maven 的命令说明

在这里插入图片描述

8.3.3 Tomcat 插件使用

8.3.3.1 第一种方式

在子项目中配置 tomcat 插件要求所有的聚合工程必须要安装。

8.3.3.2 第二种方式

在父项目中配置 tomcat 插件不要求所有的工程必须要安装。

10 Idea 中的项目打包

10.1Maven 项目的打包处理

在这里插入图片描述

10.2非 Maven 项目的打包处理

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

六、 IDEA 的其他常用功能

1 IDEA 中 SVN 的使用

1.1提交项目代码
1.1.1 上传代码时可以指定忽略一些上传目录

在这里插入图片描述

== 未完待续 ====

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

从入门小白到小黑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值