目录

1 配置

2 常用快捷键

3 安装插件

4 使用Maven创建web项目

5 使用Maven导入依赖

6 Maven创建项目后缺少文件夹

7 Tomcat LocalHost Log消失

8 EL表达式无效

9 Project 和 Module

10 ${XXX.version}无效

11 xml文件报错

12 配置数据源时报错应该是javax类型

13 IDEAJava设置注释模板

14 导入新项目时依赖下面有红线

15 下载依赖速度慢

16 代码提示少

17 查看类图

18 编译时报错不能使用diamond预算符

19 出现 Usage of API documented as @since 1.8+

20 断言不起作用

1 配置

ideaJava每次创建一个新的web项目就需要重新配置Tomcat,配置完Tomcat后还要导入Tomcat的包,可百度如何导入外部包,完成后应该如下图所示

后来仔细研究后发现之所以还要配置是因为我一个开始就没有选择webapp项目直接module了一个项目。

2 常用快捷键

Alt+Insert,可以生成构造器/Getter/Setter等

Ctrl+O,重写方法

Ctrl+Alt+O,优化导入的类和包

Ctrl+Shift+Space,自动补全代码

Ctrl+Alt+T,可以把代码包在一个块内,例如:try/catch
Ctrl+Enter,导入包,自动修正

Alter+Enter 抛出异常,光标移动到该处

psvm,main方法

F2 快速定位到下一个错误代码处

Shift + F2 快速定位到上一个代码错误处

知道类名查找类: Ctrl+Shift+Alt+N;

在类中查找某一个方法:

1 使用 ctrl+F12打开类中所有方法的界面

2 然后直接键盘中输入方法名称或者方法包含的字母,会自动模糊匹配相关方法名

查看类的关系图:

在你想查看的类的标签页内,点击右键,选择 Diagrams,其中有 show 和 show ... Popup,只是前者新建在标签页内,后者以浮窗的形式展示:

3 安装插件

LeetCode中可以安装许多有用的插件方便编写代码:阿里的代码规范、LeetCode插件等。阿里的安装完后直接重启便可以使用,LeetCode需要先配置一下

配置完成后如上图所示。给出GitHub链接:https://github.com/shuzijun/leetcode-editor/blob/master/README_ZH.md

完成后感觉这个插件用处不大。。。。。。

4 使用Maven创建web项目

注意maven3.3.6.9版本以上使用jdk1.8。好像在右下角选择Enable Import就可以没有这么多事了。。。直接添加Tomcat服务器然后如下图就可以了。

选择本地版本

next finish即可。需要注意的是上面的quickstart只是一个基础的骨架,如果要创建一个web项目需要选择webapp,注意不要选择红色标注的哪一个。

当创建完项目后需要配置Tomcat:有一点要注意一定要保证maven项目创建完后才可以配置Tomcat否则会造成某些文件缺失的。

在1处自己随便命名,2处点击fix

修改路径为:src\main\wepapp后面才要接web.xml或者其他什么路径设置完成后点击apply

完成设置后添加项目名

当配置完成后就可以编写页面了,对页面要配置页面的编码格式否则会出现乱码的,即把下面的代码放在jsp文件第一行即可

 <%@ page contentType="text/html;charset=UTF-8" language="java" %>

注:创建 一般的Java项目就没这么麻烦:

直接点击next,不用勾选什么,直接输入后面输入项目名字即可。

5 使用Maven导入依赖

在浏览器输入:mvnrepository.com然后搜索要导入的包即可

然后复制Maven下面的的定位,粘贴在pom.xml中

<dependencies>
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency> <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency> </dependencies>

6 Maven创建项目后缺少文件夹

按照上面4简单创建完mave项目后可能会缺少一些文件夹,正常文件夹如下图:

对于java是源文件,先创一个普通文件夹为java然后设置为源文件,右键设置为Source Root 这里是已经设置好了

resource应该设置为Resource Root,此外缺少test这些按照上面操作即可。

7 Tomcat LocalHost Log消失

IdeaJava中发现Run Tomcat时控制台信息消失了,重新配置了窗口也不行,后来才发现是因为鼠标一直拉这个让它最小化,才导致消失了

8 EL表达式无效

要在page页面设置一下EL表达式

<%@ page isELIgnored="false"%>

9 Project 和 Module

在 IntelliJ IDEA 中Project是最顶级的结构单元,然后就是Module,一个Project可以有多个Module。目前,主流的大型项目结构基本都是多Module的结构,这类项目一般是按功能划分的,比如:user-core-module、user-facade-module和user-hessian-module等等,模块之间彼此可以相互依赖。通过这些Module的命名可以看出,它们都是处于同一个项目中的模块,彼此之间是有着不可分割的业务关系。因此,我们可以大致总结出:一个Project是由一个或多个Module组成。

(1)当为单Module项目的时候,这个单独的Module实际上就是一个Project;
(2)当为多Module项目的时候,多个模块处于同一个Project之中,此时彼此之间具有互相依赖的关联关系。
此外, IntelliJ IDEA 的Project是一个不具备任何编码设置、构建等开发功能的概念,其主要作用就是起到一个项目定义、范围约束、规范类型的效果,或许,我们也可以简单地理解Project就是一个单纯的目录,只是这个目录在命名上必须有其代表性的意义。在缺省情况下,IntelliJ IDEA 是默认单Project单Module的,这时Project和Module合二为一,在没有修改存储路径的时候,显然Project对Module具有强约束作用!不过说实话,这里就是将Module的内容放在了Project的目录下,实际上还是Module自己约束自己。

由以上可知当需要创建一个复杂的项目时一般先创建一个Project然后在该项目下创建多个Module。

10 ${XXX.version}无效

有可能是两种原因:(1)因为复制粘贴过来的,程序可能内部出错了,此时方法最简单直接重启即可。也可以选择清除缓存重启。(2)有可能是因为父类没有配置好,此时是配置的问题需要仔细检查一下。

11 xml文件报错

在写配置文件时:xmlns:mvc="http://www.springframework.org/schema/mvc" 这句话一直报错标注红线,检查了好久并没有发现什么问题,最后忽略了这个配置,不报错了然而下面的class有报错显示找不到该class。胡乱配置了一通把<bean class=""/>这个标签里的类给搞的不知道怎么回事反正不正常了,又回不去默认配置,没办法重装了IDEA,重装之后就正常了。可能问题有:是不是我装了一些其他的插件导致内部出问题了,装了有阿里巴巴的代码规范和LeetCode的代码插件;或者是因为我没配置好但不太可能啊我检查了好几遍,也许是复制粘贴的没检查出来,反正这次事件后就开始考虑在能破解的范围内尽可能用最新的软件了。

12 配置数据源时报错应该是javax类型

在配置SSM数据库时在配置session工厂时提示配置的类型应该是javax类型,仔细研究后发现javax是jdk自带的数据类型现在报错有能是jdk没有配置好,果然对项目重新配置了jdk版本后就正常了。

13 IDEAJava设置注释模板

设置类模板

/**
* @title: ${NAME}
* @projectName ${PROJECT_NAME}
* @description: TODO
* @author ${USER}
* @date ${DATE}/${TIME}
*/

14 导入新项目时依赖下面有红线

按照下图修改即可。

备注:(1)当在新环境中使用maven时一定要先安装maven,在命令行查看maven -version看是否安装好,maven只支持jdk1.8版本以上的,对于版本太低的也不行。

(2)对于直接拷贝的项目最好不要直接import因为项目会从main文件下寻找依赖,拷贝的项目本地main为空自然就出错了因此要用open。

按照上面的配置发现又有错误了,编译项目出错,具体报错情况如下:

Error:Maven Resources Compiler: Maven project configuration required for module 'oa_web' isn't available. Compilation of Maven projects is supported only if external build is started from an IDE.

下面两个是为了解决导入依赖下面有红线时问题的解决方法,为了验证是否真的是因为下面maven仓库的问题,我选择了把它恢复为初始设置又重新导入了一下项目,发现正常,这说明不是因为仓库位置的问题。事实证明这三个选择哪一个都无所谓的,我在Maven home选择了本地的D盘下的安装路径也没有报错,这就说明不是这些的问题。事实上MavenHome是配置Maven路径,setting.xml是配置的仓库下载地址和下载资源的网站,最后一个则是本地仓库地址。

右键出错的module,选择rebuild即可解决。

结合上面的分析,当有红线时可能是没有自动创建项目,需要勾选自动创建,创建时可能有些module会报错,需要rebuild一下即可。

15 下载依赖速度慢

下载慢是因为直接从国外官网下载的,修改一下设置即可,在项目设置中选择本地Maven覆盖默认的setting,在本地Maven的conf中新建一个settings.xml如下内容:

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<mirrors> <!-- mirror
| Specifies a repository mirror site to use instead of a given repository. The repository that
| this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
| for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
|
<mirror>
<id>mirrorId</id>
<mirrorOf>repositoryId</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://my.repository.com/repo/path</url>
</mirror>
-->
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>uk</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://uk.maven.org/maven2/</url>
</mirror>
<mirror>
<id>CN</id>
<name>OSChina Central</name>
<url>http://maven.oschina.net/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>nexus</id>
<name>internal nexus repository
</name> <!-- <url>http://192.168.1.100:8081/nexus/content/groups/public/</url>-->
<url>http://repo.maven.apache.org/maven2</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
</settings>

16 代码提示少

代码提示少是因为默认设置中是对大小写敏感度,因此要取消敏感,那么代码提示就会变的很多了。

17 查看类图

右键选择即可。

注:

(1)在类图中可能会发现放大后字体模式这是可以调整字体,即设置整个代码显示的字体

(2)类图不能根据拖动自动调用这些因为布局的问题,一般默认的都不行,选择Circular布局即可。

··

18 编译时报错不能使用diamond预算符

报错信息如下:Error:(16, 60) java: -source 1.5 中不支持 diamond 运算符(请使用 -source 7 或更高版本以启用 diamond 运算符)

解决方法: 1 选择 File --> project Structure --> Modules,选择项目修改 “Sources” 选项卡下的 “Language level” 及 “Dependencies”选项卡下的 “Module SDK

2 修改Java Compiler

File --> Settings --> Build,Execution,Deployment --> Compiler --> java Compiler

19 出现 Usage of API documented as @since 1.8+

报错信息:

Usage of API documented as @since 1.8+

This inspection finds all usages of methods that have @since tag in their documentation.

This may be useful when development is performed under newer SDK version as the target platform for production.

出现原因:

出现该问题的原因是由于使用了JAVA8的新特性,但是Language Level(最低可支持的版本)比较低,无法支持这些特性。比如设置的Language Level为6.0,可是却使用了8.0/9.0的新特性,6.0无法解析这些特性,因此IDE会报错来提醒我们。

解决方法:

如果对最低支持版本有要求,没办法改动的话,那就只能放弃使用报错部分的代码。 如果对支持版本没有要求的话,可以改动IDE的Language Level来消除错误。

法1. 使用ctrl+shift+alt+S,打开Project Structure,选中侧边栏的Modules,在Sources窗口中修改Language Level(必须大于等于报错信息给出的level)。

法2. 在pom.xml中添加配置

   <build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>

20 断言不起作用

IDEA中的断言是默认关闭的,需要手动打开

0

IDEA Java的更多相关文章

  1. Spark案例分析

    一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...

  2. 故障重现(内存篇2),JAVA内存不足导致频繁回收和swap引起的性能问题

    背景起因: 记起以前的另一次也是关于内存的调优分享下   有个系统平时运行非常稳定运行(没经历过大并发考验),然而在一次活动后,人数并发一上来后,系统开始卡. 我按经验开始调优,在每个关键步骤的加入如 ...

  3. Elasticsearch之java的基本操作一

    摘要   接触ElasticSearch已经有一段了.在这期间,遇到很多问题,但在最后自己的不断探索下解决了这些问题.看到网上或多或少的都有一些介绍ElasticSearch相关知识的文档,但个人觉得 ...

  4. 论:开发者信仰之“天下IT是一家“(Java .NET篇)

    比尔盖茨公认的IT界领军人物,打造了辉煌一时的PC时代. 2008年,史蒂夫鲍尔默接替了盖茨的工作,成为微软公司的总裁. 2013年他与微软做了最后的道别. 2013年以后,我才真正看到了微软的变化. ...

  5. 故障重现, JAVA进程内存不够时突然挂掉模拟

    背景,服务器上的一个JAVA服务进程突然挂掉,查看产生了崩溃日志,如下: # Set larger code cache with -XX:ReservedCodeCacheSize= # This ...

  6. 死磕内存篇 --- JAVA进程和linux内存间的大小关系

    运行个JAVA 用sleep去hold住 package org.hjb.test; public class TestOnly { public static void main(String[] ...

  7. 【小程序分享篇 一 】开发了个JAVA小程序, 用于清除内存卡或者U盘里的垃圾文件非常有用

    有一种场景, 手机内存卡空间被用光了,但又不知道哪个文件占用了太大,一个个文件夹去找又太麻烦,所以我开发了个小程序把手机所有文件(包括路径下所有层次子文件夹下的文件)进行一个排序,这样你就可以找出哪个 ...

  8. Java多线程基础学习(二)

    9. 线程安全/共享变量——同步 当多个线程用到同一个变量时,在修改值时存在同时修改的可能性,而此时该变量只能被赋值一次.这就会导致出现“线程安全”问题,这个被多个线程共用的变量称之为“共享变量”. ...

  9. Java多线程基础学习(一)

    1. 创建线程    1.1 通过构造函数:public Thread(Runnable target, String name){}  或:public Thread(Runnable target ...

  10. c#与java的区别

    经常有人问这种问题,用了些时间java之后,发现这俩玩意除了一小部分壳子长的还有能稍微凑合上,基本上没什么相似之处,可以说也就是马甲层面上的相似吧,还是比较短的马甲... 一般C#多用于业务系统的开发 ...

随机推荐

  1. 小菜鸟之shell

    Linux shell编程 目录 什么是Shell 1 Shell脚本的执行方式 1 第一种:输入脚本的绝对路径或相对路径 1 第二种:bash或sh +脚本 1 Shell中的变量 2 定义变量 2 ...

  2. cook,session

    //发送session request.getSession().setAttribute("user", "zs1"); //发送cookie //需要自动登 ...

  3. (六)Java秒杀项目之接口优化

    一.Redis预减库存减少数据库访问 思路:减少数据库访问 1.系统初始化,把商品库存数量加载到Redis 2.收到请求,Redis预减库存,库存不足,直接返回,否则进入3 3.请求入队,立即返回排队 ...

  4. 高深的dp POJ 2229Sumsets

    对于这个问题, 我们显然可以看出来, 当他是奇数的时候, 直接等于他的前一个偶数 dp [ i ] = dp [ i - 1] ; 那么问题, 当它是偶数的时候, 我们应该怎么进行 dp 记忆化搜索并 ...

  5. Docker pull 出现的 error pulling image configuration: Get https://dseasb33srnrn.cloudfront.net/

    vim /etc/sysconfig/docker OPTIONS='--selinux-enabled --log-driver=journald --signature-verification= ...

  6. maven中添加memcached.jar配置方法

    一.java memcached client的jar包下载地址:https://github.com/gwhalin/Memcached-Java-Client/downloads 二.cd jav ...

  7. JS执行顺序问题

    JavaScript执行引擎并非一行一行地分析和执行程序,而是一段一段地分析执行的.而且在分析执行同一段代码中,定义式的函数语句会被提取出来优先执行.函数定义执行完后,才会按顺序执行其他代码. 先看看 ...

  8. luogu4677山区建小学题解--区间DP

    题目链接 https://www.luogu.org/problemnew/show/P4677 分析 这道题方法跟之前题不一样,我们相当于枚举一个左右端点来线性扩展,同时划分断点进行决策 \(f[i ...

  9. 使用XPath爬取网页数据

    我们以我的博客为例,来爬取我所有写过的博客的标题. 首先,打开我的博客页面,右键“检查”开始进行网页分析.我们选中博客标题,再次右键“检查”即可找到标题相应的位置,我们继续点击右键,选择Copy,再点 ...

  10. 1 简介mvp模式

    1   模型-视图-表示器也称为监视控制器模式 ,如下图表示 2 mvp 模式希望通过表示器(presenter)来关联网页,而不必在他们之间建立严格的 3 一个简单的mvp架构的例子 public ...