# IntelliJ IDEA
# 快捷键
psvm # 快速生成main()方法
sout # 快速生成输出语句
Ctrl+/ # 单行注释,再来一次就是取消
Ctrl+Shift+/ # 多行注释,再来一次就是取消
/** + enter # 方法或者类说明注释,自动带参数和返回值
Ctrl+Alt+L # 格式化
Ctrl+Alt+V # 自动补全等号左边
Ctrl+Alt+T # 添加包裹语句 例如:try catch
Alt+Insert # 快速生成构造函数和私有成员的get、set方法、重写方法、meven添加依赖和插件
Ctrl+Shift+Alt+S # 查看项目结构
Alt+Shift+R # 重命名 通过此方式重命名类或变量、方法,在被引用处也会相应变化
Double Shift # 随处搜索
Alt+F7 # 定位方法、函数、变量在哪个类中被引用
Ctrl+B # 转到定义
F3 # 转到定义
F6 # 逐步调试
F8 # 执行并跳出方法
# 常用设置
# 项目结构

# test目录发布时不会被打包
# 手动添加的resources文件夹需要点击右键Mark Directory as -> Resources Root
# 创建空项目
# 1、New Project -> Empty Project -> 把送的 这个模块干掉
# 2、Project Structure -> Module 添加新模块

# 文件添加copyright
# 1、settings -> Editor -> copyright -> copyright profiles -> 添加如下 -> apply
Project:$project.name
FileName:$file.fileName
Date:$today
Mail:303258100@qq.com
Author:Sylone
# 2、settings -> Editor -> copyright -> default project copyright ->
# 选择copyright名字 -> 点击右上方+ -> scope选择project file -> apply
# 3、可以右击目录或者文件选择 update copyright 手动加入coperight
# 第一次在包下建立子包时候无法创建
Tree Appearance 下有一个 Compacket Middle Packages 将它关闭即可

# 修改文件的模板
# 例如:web.xml文件的模板: setting -> Editor -> File and Code Templates -> Other -> Web
# IDEA工具栏添加按钮
以项目结构Project Structure 为例添加按钮
# 1、打开设置进入 Menus and Toolbars
# 2、右侧点开 Main Toolbar
# 3、找一行虚线,点加号,Add Action
# 4、搜索Project Structure
# 5、点击 确定

# 全局配置
- Maven
- File Encodings

# 配置SSH

# 配置Docker

# 配置FTP


# 集成Tomcat
# 配置Tomcat
- Run-> Edit Configurations

- Tomcat中默认集成了jsp和Serverlet

# 创建web项目
# Template:Web Application
# Application Server:选择已安装的Tomcat
# JDK:选择已安装的版本
# Java EE:选择Java EE版本



# 对tomcat的设置和更改
- 打开Tomcat配置

- 虚拟目录的设置

- 热更新配置,对Tomcat进行相应的设置,这样的话修改的jsp界面什么的东西才可以及时的显示出来
On Update action 当代码改变的时候,需要IDEA做什么(一般选Update classes and resources)
Update resources # 如果更新资源文件(*.jsp,*.xml等,不包括java文件),就会立刻生效
Update classes and resources # 如果更新java文件和资源文件的,就会立刻生效
Redploy # 重新部署,只是把原来的war删掉,不重启服务器
Restart # 重启服务器
On Frame deactivation:当失去焦点(比如你最小化了IDEA窗口),需要IDEA做什么
Do nothing # 不做任何事(一般推荐这个,因为失去焦点的几率太大)
Update resources # 失去焦点后,修改的resources文件都会立刻生效
Update classes and resources # 失去焦点后,修改的java,resources文件都会立刻生效
注意 Update classes and resources
在运行模式下,修改java文件时不会立刻生效的;而debug模式下,修改java文件时可以立刻生效的。两种运行模式下,修改resources资源文件都是可以立刻生效的
# Tomcat项目目录
- Idea集成tomcat之后,以后发布的每一个项目都会创建一份新的tomcat配置

- 工作空间项目和Tomcat部署的web项目
# Tomcat部署的web项目对应着工作空间项目的target目录
# Tomcat真正访问的是Tomcat部署的web项目
# WEB-INF目录下的内容不能直接访问
# 部署 war 和 war exploded 的区别
# war模式这种可以称之为是发布模式,这是先打成war包,再发布
# war exploded模式是直接把文件夹、jsp页面 、classes等等移到Tomcat 部署文件夹里面,进行加载部署
# Language level
Java JDK 在每个新版本都会有其新特性,而新版本一般也会向下兼容旧版本的特性:
# JDK 6 的新特性:@Override in interfaces
# JDK 7 的新特性:Diamonds,ARM,multi-catch etc
# JDK 8 的新特性:Lambdas,type annotation etc
# JDK 9 的新特性:Jigsaw project etc
# 调整Language level
lambda是java8才有的 ,默认使用Java7环境,就算我们用的是高版本java,它还是使用7来编码
- 项目调整language level的方法

- 对于大型项目,各个 Module 用到的 SDK 和 language level 很有可能是各不一样的,按模块调整

- 打开 File -> Settings -> Compiler -> Java Compiler设置Project bytecode version;同时修改项目对应的Target bytecode version

# 自动注入bookDao提示错误
# IDEA在检测依赖关系的时候,没有找到适合的类注入,所以会提示错误提示
# 但是程序运行的时候,通过MyBatis代理对象就会被创建,框架会使用DI进行注入,所以程序运行无影响

# 创建boot项目连接不到服务器
# 设置代理:setting -> HTTP Proxy -> Auto-detect proxy settings -> Check connection -> 输入:
https://start.spring.io
https://start.spring.io/
http://start.spring.io
http://start.springboot.io/
# 忽略项目生成的文件

# 实现右键压缩css和js文件
发布时有些css和js文件较长多行,导致加载的时候略慢,所以想把指定的css或js压缩
- 下载 yuicompressor 的 jar 包 yuicompressor 下载地址1 (opens new window) yuicompressor 下载地址2 (opens new window)
- 配置相关参数
# name和Description自定义
# Program:java
# Arguments:
# css 的用这个,F:\my.jar 下载yuicompressor.jar的本地路径
-jar F:\my.jar --type css --charset utf-8 $FilePath$ -o $FileNameWithoutExtension$.min.css
# js 的用这个,F:\my.jar 下载yuicompressor.jar的本地路径
-jar F:\my.jar --type js --charset utf-8 $FilePath$ -o $FileNameWithoutExtension$.min.js

- Working directory:点击框架中右边 + 加号,最后点击OK,然后重启IDEA

- 压缩文件:选择css或js文件右键,如下操作

# Services 相关问题
# Services 窗口添加了springboot但是是空白
- 把所有的 maven 依赖移除,重新添加

- 最后,只需要清一下idea的缓存,重启一下idea就行了

# Services 面中缺少模块服务
在.idea包下找到workspace.xml
<component name="RunManager" selected="Spring Boot.RuoYiGatewayApplication">
<configuration name="CollectSeedsApplication" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot">
<!--模块名-->
<module name="ruoyi-modules-collectseeds" />
<!--启动类的路径-->
<option name="SPRING_BOOT_MAIN_CLASS" value="com.ruoyi.collectseeds.CollectSeedsApplication" />
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
</component>