idea使用指南

邮差的信 提交于 2019-12-05 22:42:33
关于强转
(CrcWorkExperienceAfter)obj;
(List<CrcWorkExperienceAfter>)businessDatas

 log.info(Json.toJsonString(list));于sout() 的区别,  log.info(可以打印当前所在 的是哪个类 打印的log)

 

设置类头注释--方法一  在File and Code Template点击file header进行设置

/**
 * 
 * @author wangxl
 * @date ${YEAR}-${MONTH}-${DAY}
 */

设置类头注释--方法二  在File and Code Template --Files-选择Class设置

#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end
#parse("File Header.java")
/**
 * @Author: wangxinle5
 * @Description: 
 * @Date: ${YEAR}/${MONTH}/${DAY}/${HOUR}:${MINUTE}
 */
public class ${NAME} {
}



controller方法注释,在 live template设置
/**
 * @Author: wangxinle5
 * @Description: 
 * @Date: $date$ $time$
 * @Param: $params$
 * @return: $returns$
 */

设置service接口注释,使用默认的快捷键 /**回车即可, 输入说明信息即可

 

 

String t = "a||b||c||d";

String[] temp = t.split("\\|\\|");

System.out.println(temp.length);

 

1.eclipse使用指南,将项目1 和 项目2  放到 不同的文件夹下, 
从代码仓库下载到 project1 project2文件夹下, 打开eclipse,导入settings.epf文件

2.关于匿名内部类:在升级替换class文件时候, 
要连同同名的class的匿名内部类的class也要生成,即 同名且含有&符号的 .class文件 都要复制替换
IntelliJ IDEA 热部署,修改java文件JS文件 不用重启tomcat,设置tomcat如下:
on ‘update‘ action:当用户主动执行更新的时候更新    快捷键:Ctrl + F9 手动加载新代码的.class文件

on frame deactication:在编辑窗口失去焦点的时候更新

你可以根据自己的需求进行设置,我这里两个都有设置。  这里设置以后,修改sql必须重启 而class修改不用重启,  如果电脑比较卡, 就不要在这里设置了市区焦点更新class文件, 你可以手动去点击 idea菜单栏的 锤子 按钮来 重新编译代码
idea之web项目添加tomcat并启动:

1.Facets--->点击加好,选择web,添加web(kl)
2.Web Application Explored from module选择客流kl项目

3.此步是不需要的  modules--->点击Dependencies添加tomcat的依赖(servlet-api和jsp-api)   

如果想修改mapper.xml里的sql也不用重启就生效的话,下载JRebel插件可以实现  你上一次是jrebel的debug模式启动的,那么下一次左下角就是jrebel debug,而不是默认的tomcat debug了

 

//采用简单类名格式记录日志
package example;
 
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
 
public class HelloWorld {
  public static Log log = LogFactory.getLog(HelloWorld.class);
  public static void main(String[] argv) {
             String test="sdibt";
            log.info("this is info:"+test);
            log.error("this is error:"+test);
            log.debug("this is debug:"+test);
  }
}

日志信息中已经给出了类名,根据类名及打印信息可以直接查找到所在的代码
格式: 时间  info  包名.类型  打印日志所在行数,  打印日志信息
2018-05-10 10:46:29,566 INFO [example.HelloWorld]:10 - this is info:sdibt
2018-05-10 10:46:29,566 ERROR [example.HelloWorld]:11 - this is error:sdibt
2018-05-10 10:46:29,566 DEBUG [example.HelloWorld]:12 - this is debug:sdibt

Process finished with exit code 0

logger.error("", e);
ERROR CounterDelayAlarmJob getCounterDelayTime error!
com.datangmobile.op.uf.dao.DAOException: fail to execute : from CustomOptionProp a where a.propName='PMData_DelayTime'; nested exception is java.lang.NullPointerException
 at com.datangmobile.op.uf.dao.BaseDAOImpl.queryJQL(BaseDAOImpl.java:373) [uf-midware.jar!/:na]

 

明确一点: 后台抛出异常,那么后续的代码都不会被执行

Java Exception 捕获和展示 使用 e.getMessage()

e.getMessage(); 只会获得具体的异常名称. 比如说NullPoint 空指针,就告诉你说是空指针... e.printStackTrace();会打出详细异常,异常名称,出错位置,便于调试用.. e.printStackTrace();会打出详细异常,异常名称,出错位置,便于调试用..

 

catch (Exception e) {
    e.printStackTrace();
    String message = e.getMessage();
    return Msg.fail().add(message.substring(0, message.indexOf("\r\n")));

设置后可以在console控制台进行搜索

新建一个对象封装入参 PassengerFlowData(因为不同的controller方法 有可能输入相同的参数,就可以复用该入参对象了)

转义字符的使用

var buttonContent = "<td><a οnclick='saveMapping(\"" + userList[i].userId
    + "\",\"1\")'>"+lang_save+"</a>

 

-- 给site_all_info添加主键列

select * from a left join b on (a,b的连接条件)left join c on(a,b形成的临时中间表和c的连接条件)

long start = System.currentTimeMillis();
long end = System.currentTimeMillis();
System.out.println("Run Time:" +(end - start));//打印一行代码的运行时间,返回ms值

需要明确的地方一点: 用对象接查不到返回null,用list接查不到返回size为0的list

if (!"[]".equals(result)) //如果返回对象,非空判断是否为空list,不是空的list再parseArray

遍历list刷新其中实体类的值,返回原来的list就可以 (当然最好还是在get方法里,将两个成员变量通过计算赋值效率更高)

缩进提示的竖线不见了,怎么找回

返回controller的@responseBody返回list直接.length属性

settings搜索paste(indent设置为none),将光标定位在最左侧,然后再粘贴navicat格式化好的sql,最后选中sql点击tab键右移

.gitignore文件忽略版本控制失败?

.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修
改.gitignore是无效的。那么解决方法就是先把本地缓存删除(改变成未track状态),然后再提交:
输入:如下2行即可
$ git rm --cached /.idea
git commit -m "We really don't want Git to track this anymore!"
git commit -m “remove xx”
来解释下几个参数 -r 是删除文件夹及其子目录 –cached 是删除暂存区里的文件而不删除工作区里的文件

将target文件夹不纳入版本控制,可以用git 或svn 的Tortoise

递归的recursively

取消mybatissql警告

idea在左侧的project目录中 看不到项目的文件结构图 只能看到几个idea自己生成的文件
1. 关闭IDEA, 
2.然后删除项目文件夹下的.idea文件夹
3.重新用IDEA工具打开项目

 

 

IntelliJ IDEA隐藏不想看到的文件或文件夹

打开IntelliJ IDEA,File -> Settings -> Editor -> File Types

 

打成war包的输出路径,写成这样,点击加号 选择 Web Application: Archive  输出到target目录下 (即为war包存放位置)

 


Artifacts 项目的打包部署设置(选择如下框,点击确定) 注意打包前先更新下代码

 

最好不要将target目录隐藏,方便从idea的这个目录下粘贴

 

ctrl+h直接在下面进行修改,不用点进页面(当然最快的还是全局替换 replace in path 快捷键ctrl+shift+h)


SVN不能提交代码怎么解决?
看看你的svn项目库是不是受控的,如果没有受控,先把checkout下来的文件夹add即可

右键文件夹TortoiseSVN点击 clean up(clean up是清除锁定的意思)(一般需要去顶层目录去清理)可以使锁定的不能更新的文件夹解锁,里面的word就可以正常更新了 
出现锁定的原因:SVN 本地更新时,由于一些操作中断更新,如磁盘空间不够,可能会造成本地文件被锁定的情况 

如上图标注红圈所示,为工具栏上版本控制操作按钮,基本上大家也都是使用这里进行操作。
第一个按钮:Update Project 更新项目。
第二个按钮:Commit changes 提交项目上所有变化文件。点击这个按钮不会立马提交所有文件,而是先弹出一个被修改文件的一个汇总框,具体操作下面会有图片进行专门介绍。
第三个按钮:Compare with the Same Repository Version 当前文件与服务器上该文件通版本的内容进行比较。如果当前编辑的文件没有修改,则是灰色不可点击。
第四个按钮:Show history 显示当前文件的历史记录。
第五个按钮:Revert 还原当前被修改的文件到未被修改的版本状态下。如果当前编辑的文件没有修改,则是灰色不可点击。

idea里右键历史版本 点击get,和revert一样
获取内容,只是取出该版本的内容放在本地文件中,本地文件的当前版本号不会改变。
获取修订版,不仅会取出该版本的内容,连本地文件的版本号也会更改为对应的版本号。

蓝色字体的类是没有提交 Intellij IDEA svn的使用记录 http://blog.csdn.net/liyantianmin/article/details/52837506


File -> Setting -> Editor -> General -> Code Completion -> Parameter Info下 时间修改为500。new Resp(500ms后参数是弹出来的);

新建的java文件夹是source folder(蓝色),而resources文件夹是resources folder(右下角是四个黄色段杠)

import module可以像eclipse一样,显示多个项目

添加tomcat(注意选择的是local的tomcat),改端口号,绑定谷歌浏览器.你启动浏览器,会自动访问index.jsp

如果在maven里放一个坐标,你可以点击右侧隐藏栏里的update,其实,右下角会自动提示你import你引入的坐标包


IDEA的Project相当与Eclipse的Workspace,而Module相当于Project。
项目名kl.iml是 intellij idea的工程配置文件,里面是当前项目的一些配置信息
ctrl+F4关闭当前窗口,ctrl+shift+F4关闭关闭所有已打开的窗口

 

idea设置空包不折叠.在左侧面板点击设置---->Compact Empty Middle Packages


设置里搜索weak 将general 的 warning和weak warning右侧的 error strip mark前面的勾去掉,可以去掉右侧的黄色警告条影

idea.exe.vmoptions和idea64.exe.vmoptions调大
-Xms512m
-Xmx750m

1.idea的 Ctrl+Shift+F12(即eclipse的ctrl+m)  其实就是 Hide All Tool Windows  (隐藏所有工具窗口) 这个操作的快捷键 

2.如何让光标不随意定位:Settings->Editor中去掉Allow placement of caret after end of line。
   
3:如何显示行号:Settings->Editor->general->Appearance标签项,勾选Show line numbers

4.Intellij idea  修改后没有保存前文件----提示*号   Settings -> Editor -> General -> Editor Tabs: Check "Mark modified tabs with asterisk"

5.Settings -> Editor -> General -> Auto Import:打钩Optimize imports on fly会自动将不用的声明包(或倒错的包)删掉,相当于快捷键Ctrl+Shift+O

Add unambiguous imports on the fly:这个就是自动导入功能了,当你输入类名后,声明就被自动导入了。此功能不知是否好使

6.Settings -> Editor->Genneral->Gutter Icons->show gutter icons
以上就是设置显示代码前的绿色叶子:左边行数旁边有一个"I"绿色图标,点击进入实现类(在接口里点击会进入), 也可以ctrl+t进入实现类

7.去除IDEA报黄色/灰色的重复代码的下划波浪线
在 setting 里面 搜索 inspections _ General _ Duplicated Code 取消勾选.提交之后就可以了

右击jar包,add as liberary(最好将jar放到WEB-INFO的lib目录下) 
maven项目如果不使用maven的打包编译  其WEB-INF下的lib一定要要有项目部署的jar,所以,为了方便,jar都放到lib下,
至于是右键add as liberary,还是点击Project Structure-> Modules-> Dependencies ->绿色 加号 这下添加的jar 会在Depedencies中显示 都是可以的

8.IntelliJ IDEA 设置代码提示或自动补全的快捷键
在左侧的导航框中点击 KeyMap –> Main menu –> Code –> Completion. 
接着需要做两件事: 
    1. 移除原来的Cycle Expand Word 的 Alt+斜杠 快捷键绑定。 
    2. 在 Basic 上点击右键,去除原来的 Ctrl+空格 绑定,然后添加 Alt + 斜杠 快捷键。

9 设置IDEA启动的时候不打开(上次最后关闭的)工程文件:Settings->Appearance&Behavior->System Settings去掉Reopen last project on startup..
在用eclipse发布web项目时,lib下的jar包也会发布的,
在用idea发布时.lib(即使不放到lib里也可打到jar包里,maven打包的厉害之处,不过还是建议放到lib里)也会发布,D:\workspace\out\artifacts\hello_war_exploded\WEB-INF\lib

10.Settings -> Editor -> General -> Code Completin 点击Case sensitive completion后面的选择框,选中None,,使智能提示忽略大小写

11.取消单行注释的斜杠在首列:
Settings->Editor->Code Style->Java->Code Generation->Comment Code->Line comment at first column

12editor-File Encodings 设置3处都为utf-8

idea可以自动优化导入包,但是有多个同名的类调用不同的包,必须自己手动Alt+Enter设置

 

13设置自动导包 auto import打钩如下两个选项  
Optimize imports on fly:这个其实和快捷键Ctrl+Shift+O,就是把不用的声明移除掉。如类头粘一个import com.alibaba.fastjson.JSON; 下面没用到就会自动移除

Add unambiguous imports on the fly:这个就是自动导入功能了,当你输入类名后,声明就被自动导入了(但是当有几个同名的包,idea就处理不了,也就不会给你自动导包,需要你alt+enter手动导包)。

你打开一个别人写的文件,可能会因为你设置了自动导包, 类会又白色变为蓝色(即删除了无用的包, 此类便进行了修改)


14.IDEA 编辑器右边竖线怎么取消呢?edit--appearance--show right margin前面的勾去掉

 

 

鼠标左键自由放置输入光标的位置  右键单击关闭Column Selection Mode 

 

File -> Settings -> Editor -> Code Style -> Java -> Tabs and Indents -> Use tab character

设置完成后,就是1个tab键等于4个空格

 

 

如何创建2个java项目:
参考网址 http://www.cnblogs.com/oskyhg/p/6649266.html
1、File -> New Project -> 创建工作空间 JavaWorkspace,并 顺便创建项目 JavaOne

2、File -> New Module -> 创建项目 JavaTwo

idea创建maven项目的过程:选中main,鼠标右键->New Folder,输入java.
以此类推创建其他目录。并标识Sources,Test

该知识网址 https://my.oschina.net/lujianing/blog/186737

模块配置根目下  分为了三个标签:Sources—— Paths—— Depedencies

project compliler output:配置的是项目中的默认编译输出总目录D:\workspace\MavenDemo\out 每个模块可以自己设置特殊的输出目录   所以这个基本上没用

modules里的paths,use module compile output path设置为 D:\workspace\MavenDemo\target\classes  使用本module的编译输出目录,即不使用默认编译输出目录,即替换掉了Project的默

认输出地址

右侧:绿色是测试目录 橘色是target的目录 这些部署的时候都不需要  大红色是我的项目下没有的 蓝色是真正需要部署

在Project Structure--Artifacts---output directory:D:\workspace\MavenDemo\out\artifacts\MavenDemo_war_exploded就是项目的发布位置  非maven项目这个可以设置到任何地方  

.MavenDemo:war exploded项目发布名称


在Depedencies里我们可以点击右侧的+号  添加lib  比如tomcat的lib  默认加进来就是Provided  Provided 也就是项目部署的时候是忽略的 只是再编译项目的时候进行使用   Compile 是

跟随着项目部署的  Test也是不部署的

“build”是“链接”的意思。作用是将你在程序中调用到的类库融合到你的程序中,比如你用到了printf()函数,那么内部实现该函数的类库代码就会添加到你的程序中

facets选web再选你的MavenDemo项目就好了


因为是手工创建Maven项目,没有选择任何Maven模,里面没有web.xml文件,不能发布到tomcat里--因此需要我们进行添加。
点击Project structure 点击modules 选择你的mavenDemo项目,右键添加web组建,就会生成web.xml在项目里了     Modules:可看到此项目无任何适配服务组件  选择Web(为此项目添加Web

服务组件,这便是一个Web项目了)


使用TortoiseSVN.exe客户端,安装时必须选择client tools,否则不会有svn.exe,也就不能支持intellij idea的svn插件,因为intellij idea是使用命令行的方式来使用svn

 

Idea中提交SVN或git时,忽略某些文件,最简单的方式,  追加如下设置即可

*.iml;*.idea;*.gitignore;*.sh;*.classpath;*.project;*.settings;target;logs;




idea发布的项目,在webapps下是没有的,默认是在项目的out目录下,而eclipse是复制了一份发布到webapps,所以就不用担心清理的问题


IntelliJ IDEA打开带SVN信息的项目不显示SVN信息,项目右键SVN以及图标还有Changes都不显示解决方法:
在VCS菜单中有个开关,叫Enabled Version Control Integration,在打开的窗口的选项中选择Subversion即可。


按 Alt+Home.(用该方式打开,导航条显示为浮动形式) view里,点击navigation bar对号去掉即可
alt+9 显示版本控制----提交更新

关于状态栏  单击该开始(即电视图标)可以控制“工具窗口栏”的显示和隐藏

锁住就是只读模式,
下面的utf-8表示当前文件的编码格式,
定义语法高亮和颜色设置页面

新建的java文件夹是source folder(蓝色),而resources文件夹是resources folder(右下角是四个黄色段杠)


将keymap设置为eclipse的快捷键,就可以用之前eclipse的快捷键开发了F6单步等

Intellij中  web的程序 部署 不同于myeclipse和eclipse
需要把项目打成一个Artifacts(成品包)的war包 然后在 配置的tomcat的Deployment中选择对应的war包


一般是open一个maven项目,import module可以像eclipse一样,显示多个项目

添加tomcat(注意选择的是local的tomcat),改端口号,绑定谷歌浏览器.你启动浏览器,会自动访问index.jsp

svn提交,不管你鼠标在哪里,你点击提交按钮,它自动显示没提交的代码

如果在maven里放一个坐标,你可以点击右侧隐藏栏里的update

在设置maven的安装目录,settings.xml文件的位置,和本地仓库的位置 D:\delelop\maven\repository


IDEA的Project相当与Eclipse的Workspace,而Module相当于Project。
项目名.iml是 intellij idea的工程配置文件,里面是当前projec的一些配置信息


右击jar包,add as liberary(最好将jar放到WEB-INFO的lib目录下) 
maven项目如果不使用maven的打包编译  其WEB-INF下的lib一定要要有项目部署的jar,所以,为了方便,jar都放到lib下,
至于是右键add as liberary,还是点击Project Structure-> Modules-> Dependencies ->绿色 加号 这下添加的jar 会在Depedencies中显示 都是可以的

在用eclipse发布web项目时,lib下的jar包也会发布的,
在用idea发布时.lib也会发布,D:\workspace\out\artifacts\hello_war_exploded\WEB-INF\lib

 

 

 


Chrome控制台Network,如何批量搜索 Response 的内容?
1、保存为har(Save as HAR with content)www.winneryun.com.har,不用全选,随便选个保存后都是当前列
表中的所有文件。
2、保存好的har是一个json格式,随便找个喜欢的编辑器,搜索就行了。{
        "startedDateTime": "2018-04-03T02:42:02.077Z",
          "content": {
            "size": 62606,
            "mimeType": "application/json",
            "compression": -117,
            "text": "{\"AllIndexModels\":[,\"description\":\"统计周期内进入商业场所的顾客数量\",
                  \"indexName\":\"客流量\",\"date\":\"1130435

 

itar 生成普通for循环遍历数组

 


iter 生成增强for循环

 

 

itli 生成List的遍历(如下)

 

 

 

for (int i = 0; i < list.size(); i++) {
   Object o =  list.get(i);
   
}

itar 生成array的遍历

  1. for (int i = 0; i < array.length; i++) {  
  2.              = array[i];  
  3.               
  4.         }  

alt+f10  show execution point 显示执行断点所在行

在js中直接敲  fun 回车 自动生成如下,你只需填写 方法名(就会替换默认的方法名f)

 

function f() {
    
}

在js中直接敲 $(fun)  连续回车2次  就可以生成 jsp加载时执行的方法

$(function () {
    
})

 

虽然在project structure的jdk和language level 对所有项目都设置为8,但对common-core项目的 language level并没有设置为8,还是之前的5,导致diamond运算不支持报错

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!