IntelliJ IDEA

IntelliJ IDEA 社区版使用指南

这一生的挚爱 提交于 2019-12-06 09:55:05
IDEA的专业版商用是需要付费的,不建议大家在工作中使用破解的软件。大家完全可以使用社区版,最棒的就是大家都可以贡献插件,本文从性能调优和安装插件两个方面来阐述社区版在使用过程中需要如何操作。 0.写在前面   首先,IntelliJ IDEA 社区版可以商用,在官网中我们能看到如下的声明:   其英文内容为: It can also be used for commercial development. 。在此,我对于 JET BRAINS 致以崇高敬意! 1.性能调优   由于IDEA要满足大部分电脑,故配置的jvm参数会较低,对于大部分性能很好的电脑,这样的参数是不适用的,故需要调整文件 IntelliJ IDEA Community Edition 2019.3/bin/idea64.exe.vmoptions -Xms512m -Xmn512m -Xmx2048m   更加详细的调优,请参考 记一次idea性能调优 2.安装 Spring Assistant 插件   很多人抱怨说社区版没有专业版中的 springboot 项目的创建向导,安装此插件后就有了。 3.其它你需要安装的插件 我强烈建议您在开发过程中使用如下插件: 插件名称 用途 Lombok 便捷编程必备,不必手写Getter Setter等方法 Properties to YAML Converter

idea 控制台乱码解决方案汇总

非 Y 不嫁゛ 提交于 2019-12-06 09:47:04
打开 settings -> Editor -> File Encodings ,设置 Global Encoding 和 Project Encoding 还有 Default encoding for properties Files 为 UTF-8 找到idea安装目录下 bin 文件夹下的 idea.exe.vmoptions 和 idea64.exe.vmoptions ,在末尾添加 -Dfile.encoding=UTF-8 打开 Run/Debug Configurations ,在 VM options 后添加 -Dfile.encoding=UTF-8 **若以上方法还是不行则使用最后一种方式,这个应该是idea为了方便用户自定义 VM Options 添加的功能,应该是覆盖了2选项的设置,所以2选项可以不设置了 idea内 Help -> Edit Custom VM Options 中添加 -Dfile.encoding=utf-8 本人idea2019.3升级后导致配置文件丢失 1,3,4 方法设置后就恢复正常了 本文使用OpenWrite进行编写 来源: https://my.oschina.net/u/4163509/blog/3136758

IDEA添加tomcat服务以及web项目热部署配置

心已入冬 提交于 2019-12-06 09:27:10
1.进入 Edit Configurations 2.点击 + ,选择 Tomcat 服务器,如果是本地Tomcat 选择 Local 3.修改容器名称,选择容器(新增,删除) 点击加号新增,选择本地文件系统中安装的tomcat目录 4.添加web项目 Deployment ->点+号 ->选择artifacts ->选择相应项目的war exploded 5. 修改配置 1 所示,我们可以切换随时为项目切换不同的容器 2 所示,我们可以指定给运行的容器设置 VM 参数 3 所示,这分别是在两种命令下的触发的事件。这个是 IntelliJ IDEA 特有的,也是重点On Update action 当我们按 Ctrl + F10 进行容器更新的时候,可以根据我们配置的这个事件内容进行容器更新。其中我选择的 Update classes and resources 事件是最常用的,表示我们在按 Ctrl + F10 进行容器更新的时候,我们触发更新编译的类和资源文件到容器中。在 Debug 模式下,这个也就是所谓的 HotSwap。这是这种热部署没有 JRebel 插件那样好用On frame deactivation 当我们切换 IntelliJ IDEA 到浏览器的时候进行指定事件更新,这个一般是因为 Web 开发的时候,我们需要经常在 IntelliJ IDEA

Spring Boot启动提示:org.apache.catalina.LifecycleException: A child container failed during start

久未见 提交于 2019-12-05 22:13:22
一、问题描述 启动Spring boot项目,报错,信息如下: java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].TomcatEmbeddedContext[/gift]] at java.util.concurrent.FutureTask.report(FutureTask.java:122) at java.util.concurrent.FutureTask.get(FutureTask.java:192) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:939) at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:872) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) at org.apache.catalina.core

给产品经理和开发经理的一封信:关于系统的灵活性设计

无人久伴 提交于 2019-12-05 22:12:25
(中文用Google翻译翻译了下放在英文之后, 英文writing一直是我的短板, 大家凑合看吧...) 背景: 写这封信的时候我已经做好被卷入可能的政治斗争然后被挤兑走跑路的打算了。但是这些话我得说,在一个需要快速迭代开发的探索型部门,SDE才更要参与到决定“做与不做”, “做什么”的决策中去。原则性有关大局的问题要及早达成共识,才能塑造好的team环境和文化,而这其中最重要的,就是对flexibility的取舍。 There is no theoretical reason that anything is hard to change about software. If you pick any one aspect of software then you can make it easy to change, but we don’t know how to make every-thing easy to change. Making something easy to change makes the overall system a little more complex, and making everything easy to change makes the entire system very complex. Complexity is what

intellij idea 重命名或复制一个项目(不用重启)

孤者浪人 提交于 2019-12-05 21:01:46
Idea 内无法直接修改Explorer 里文件夹的名称,只能手动改文件夹的名称。 目前找到的最好的方法: 1)重命名一个项目 在Idea 项目关闭状态下,在 Explorer (Windows) / Finder (OSX) 里 重命名文件夹 ,并 删除.idea 文件夹下的 workspace.xml (此文件不删的话有些项目配置会有问题)。 Idea 菜单 File - Open... 打开重命名后的项目(如下图),如果是Web 项目,需要 重命名模块 ,操作是在项目名上shift+F6 (Rename Module);菜单File - Project Structure - Project Name, 重命名项目 (但不改好象也没什么影响),如下图;并在 Project Structure 查看 artifact,删掉错的,再 添加正确的artifact ,见下图;然后再 配置Tomcat 即可。 2)复制整个项目 复制之前可先 删除target 文件夹 ,里面是项目编译后的文件(每次启动Tomcat 都会生成),其中的jar 包体积较大。 在Explorer 直接复制整个项目文件夹 ,可直接粘贴在同一个项目目录, 修改项目文件夹名称 即可;当然也可复制到另一个项目目录。 删除.idea 文件夹下的 workspace.xml (此文件不删的话有些项目配置会有问题)。

IntelliJ IDEA快速实现Docker镜像部署

怎甘沉沦 提交于 2019-12-05 20:59:15
一、Docker开启远程访问 [root@izwz9eftauv7x69f5jvi96z docker]# vim /usr/lib/systemd/system/docker.service #修改ExecStart这行 ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock #重新加载配置文件 [root@izwz9eftauv7x69f5jvi96z docker]# systemctl daemon-reload #重启服务 [root@izwz9eftauv7x69f5jvi96z docker]# systemctl restart docker.service #查看端口是否开启 [root@izwz9eftauv7x69f5jvi96z docker]# netstat -nlpt #直接curl看是否生效 [root@izwz9eftauv7x69f5jvi96z docker]# curl http://127.0.0.1:2375/info 二、IntelliJ IDEA安装Docker插件 三、启用Docker 四、Spring Boot服务docker部署 1、新建一个Spring Boot工程,在工程里写一个REST接口,如下,简单返回一个字符串。 /

崛起于Springboot2.X + 多模块整合 + 一个启动类 + jar、war打包运行(60)

和自甴很熟 提交于 2019-12-05 20:04:47
《SpringBoot2.X心法总纲》 博客概要:Springboot多模块项目搭建 + 打包jar运行 + 打包war运行 1、创建父工程 勾选SpringWeb和lombok 如图所示 然后删除src文件夹,如图: 然后修改pom文件,添加一行打包类型 <packaging>pom</packaging> 2、创建子模块 创建3个子模块,分别为sun1、sun2、web,不勾选任何依赖。因为我们所用的依赖都在父工程的pom文件中。 创建好三个模块之后,在父工程pom.xml添加依赖 <modules> <module>sun1</module> <module>sun2</module> <module>web</module> </modules> 因为我们目前用的是Springboot多模块一个启动类,所以删除sun1和sun2的启动类,然后sun1存放实体类,因为需要使用lombok插件,所以sun1项目引入父工程pom.xml,在sun1的pom.xml中更换 <parent> <groupId>com.osc</groupId> <artifactId>father</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> 然后打包加上 <packaging>jar</packaging> 因为继承父工程

Idea中构建Tomcat8源码开发环境

风格不统一 提交于 2019-12-05 19:52:19
在研究SpringMVC源码之前得先看看Tomcat的源码(因为WEB应用要工作在容器中)。先构建Tomcat8的源码环境 下载 进入Tomcat官网 https://tomcat.apache.org/download-80.cgi ,选择tomcat8,下载下来是tomcat-8.5.49 导入到Idea中 准备 新建一个tomcat-8.5.49目录,再到其下新建一个deploy(是Tomcat的工作目录:-Dcatalina.home=x:\\*.*\deploy -Dcatalina.base=x:\\*.*\deploy)目录和导入源码目录,最终效果如下 deploy目录下的结构,除了可以复制的,其他目录直接新建 在tomcat-8.5.49目录下新建一个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">

为什么重写了equals()也要重写hashCode()

你说的曾经没有我的故事 提交于 2019-12-05 19:10:42
为什么重写了equals()也要重写hashCode() 笔者文笔功力尚浅,如有不妥,请慷慨指出,必定感激不尽 在 Effective Java 中第九条规定在覆盖 equals() 方法时总要覆盖 hashCode() 方法。这是为什么呢?接下来我们就介绍一下这两个方法。 Java中的 equals() 方法和 hashCode() 方法都是在 Object 类中的方法,而在Java中所有的类都是 Obejct 类的子类,所以Java中所有的方法都会有这两个方法的默认实现。 equals方法 Object 类中的 equals() 方法定义如下 public boolean equals(Object obj) { return (this == obj); } 我们发现在 equals() 方法中就关键的 == ,那么 == 在Java中有什么含义呢,我们都知道在Java中分为基本数据类型和引用数据类型。那么 == 在这两个类型中作用是不一样的。 基本数据类型:比较的是 == 两边值是否相等 引用数据类型:比较的是 == 两边内存地址是否相等 基本数据类型包括: byte , short , char , int , long , float , double , boolean 而通过Java文档中的 equals() 方法描述,所有要实现自己的 equals()