IDEA全家桶式讲解 | IDEA安装、使用、断点调试、Git、插件 (第二篇)
目录
一:JavaEE阶段需要掌握的IDEA技能
1. 配置Tomcat
2. 配置Maven
3. IDEA连接数据库
4. 方便的特殊功能
5. 断点调试(重点)
6. IDEA中常用Git协同开发(重点)
7. 常用插件安装
一:JavaEE阶段需要掌握的IDEA技能
1. 配置Tomcat
(1)添加本地的Tomcat服务器
(2)进行基本的配置
(3)发布项目信息
第一步:
第二步:
从项目的结构Project Structure中的Artifacts中也可以查看详细信息
(4)启动Tomcat服务器,效果图
控制台信息
注意:此时控制台出现了乱码,解决方案?
可以通过修改 IDEA 的属性文件进行设置,在 IDEA 的安装目录中找到:idea.exe.vmoptions 或者 idea64.exe.vmoptions 中最后一行添加:-Dfile.encoding=UTF-8;然后重启IDEA,在重启tomcat服务,如果发现server控制台下仍然出现乱码,这里需要为tomcat的启动添加配置:-Dfile.encoding=UTF-8即可;再或者我们使用Tomcat10即可!
(5)引入第三方 jar 包【了解】
第一种方式:在Project Structure中找到Libraries;选择+,选中java就可以引入所需要的jar包
第二种方式:先创建一个lib目录,然后把所需的jar包拷贝过去;最终添加进去即可
后期我们都是使用Maven来构建项目,所以以上方法作为了解即可!
2. 配置Maven
对于Maven有一篇博客已经详细的赘述http://t.csdn.cn/x21Rn ,这里就直接讲解IDEA集成Maven!
(1)配置本地的仓库
目前,在一般的开发工具中都会集成 Maven 插件,不进行任何配置也可以使用。但是,由于 每个公司使用 Maven 仓库的不同,和基于 Maven 软件的稳定性的考虑,一般都是使用独立的Maven 软件,不使用开发工具中内置的 Maven 插件。若需要使用自己独立的 Maven 软件,则 需要进行相关的配置;在 IDEA 中设置 Maven 可以打开 IDEA 的 settings 进行设置如下图:
配置的入口 :File--settings ---Build, Excution,Deployment--Build Tools--Maven
①Maven Home directory: maven的安装目录
②User Settings File : 就是maven安装目录conf/setting.xml配置文件
③Local Repository : 本机仓库的目录位置,上面配置好,会自动配置这一项
补充:还要对另一个位置进行同样的设置,这样以后创建新项目也会默认使用自己配置的仓库:
File--->New Projects Setup--->Settings for New Projects
会跳转到上面相同页面,在重新配置一遍即可
(2)创建Maven的Java项目
第一步:选择创建Maven的Module,不再是Java项目或者空项目了;当然我们也可以选择使用模板进行创建;Java项目不需要选用模板
第二步:模块名,代码存放的位置,填写坐标信息
生成的结果
(3)创建Maven的Web项目
第一步:使用webapp项目模板
第二步:同样是模块名,代码存放的位置,填写坐标信息;
第三步: 生成的目录结构是缺少java代码目录的
添加java目录和resources目录
3. IDEA连接数据库
第一步:打开面板
第二步:输入用户名和密码,注意:第一次使用会需要下载驱动
第三步:先点击右边点,选中mybatis数据库,最终就可以得到里面的表
4. 方便的特殊功能
(1)代码分栏
在开发大型项目时,有的类实现相互有关联的,我们就可以通过代码分栏的方式达到以下效果:
具体操作:放在类的位置栏上,点击右键,找到带Split的单词
(2)命令行终端分栏
在IDEA中我们也可以直接打开命令行窗口进行操作:
并且对于命令行窗口也支持分栏的操作,选中Local右击鼠标:
(3)禅模式
所谓的禅模式就是只显示敲代码的栏框,避免其它的干扰!步骤如下:
效果如下:
(4) HttpClient
主要是用来发送客户端请求的,步骤如下:
执行结果如下:
5. 断点调试(重点)
(1)Debug设置
在windows系统的IDEA中,可以通过设置:Shared memory属性,从而减少对内存的占用。
(2)常用断点调试快捷键
实际上最常用的就三个:F7(进到一个方法体当中)、F8(下一步)、F9(跳到下一个断点)!
6. IDEA中常用Git协同开发(重点)
这个知识点是建立在对 GIT 有一定了解的基础上来讲解的,如果还不会使用 git,请查阅相关 GIT 的安装和基本使用!
(1)配置Git,根据我们已经安装好的Git配置以下目录
(2)场景说明
假设小组中有两个人,组长小明,组员小红:
场景一:小明创建项目并提交到远程 Git 仓库 /gitlab
场景二:小红从远程 Git 仓库上获取项目源码
场景三:小红修改了部分源码,提交到远程仓库
场景四:小明从远程仓库获取小红的提交
场景五:小红接受了一个新功能的任务,创建了一个分支并在分支上开发、提交到远程仓库
场景六:小明获取小红提交的分支
场景七:小明把分支合并到主干
场景八:项目要发版,小明打 tag
第一步:先创建一个springboot项目
第二步: Git提交代码到本地仓库
选择 VCS -> Create Git Repository
然后选中我们要提交的项目,点击 OK 后创建完成本地仓库
注意:这里是存在本地,但是本地的暂存区和版本库里都没有;下面把项目源码添加到本地仓库:
上图是 Git 与提交有关的三个命令对应的操作:Add 命令是把文件从 IDE 的工作目录添加到 本地仓库的 stage 区;Commit 命令把 stage 区的暂存文件提交到当前分支的仓库;
第三步:提交本地仓库到远程库
假设小组成员小明和小红共同开发一个项目,他们除了把代码提交到本地,还要提交到远程库当中,这个远程库使用Gitee
场景一:小明创建项目并提交到远程 Git 仓库
①先创建一个空的仓库
②设置仓库的基本信息
③创建成功,复制远程仓库的地址
④把本地仓库的项目推送到远程仓库:
Git---》push
输入远程仓库的账户和密码
点击Push推送
成功添加到远程仓库
场景二:小红从远程 Git 仓库上获取项目源码
①从 git 从检出项目
②进入仓库,点击克隆,复制链接
③粘贴链接,点击Clone,就可以从远程仓库拉取到本地
场景三:小红修改了部分源码,提交到远程仓库
这个操作和首次提交的流程基本一致,分别是 Add -> Commit -> Push。
然后commit提交到本地仓库,在Push提交到远程仓库;或者一步到位:Commmit and Push
场景四:小明从远程仓库获取小红的提交
获 取 更 新 有 两 个 命 令 : Fetch 和 Pull
Fetch 是 从 远 程 仓 库 下 载 文 件 到 本 地 的origin/master,然后可以手动对比修改决定是否合并到本地的 master 库;Pull 则是直接下载并合并。如果各成员在工作中都执行修改前先更新的规范,则可以直接使用 Pull 方式以简化操作。
场景五:小红接受了一个新功能的任务,创建了一个分支并在分支上开发
建分支也是一个常用的操作,例如临时修改 bug、开发不确定是否加入的功能等,都可以创建 一个分支,再等待合适的时机合并到主干。
①New Branch 并输入一个分支的名称
此时的分支dex只有本地上有,远程仓库上还没有
②在dev分支上开发一个新功能Hello,然后Add和Commit;此时在本地上dev分支上有Hello,主分支上master并没有
③此时远程仓库上是都没有dev分支的,需要Push,会自动创建这个分支
④此时远程仓库上就会多一个dev分支结构
此时master主分支与dev分支对比:dev比master多了一个Hello
master主分支
dev分支
场景六:小明获取小红提交的分支
①对于小明来说本地是没有dev的
②去Fetch拉取,Fetch后就有这个分支了,然后换成dev分支即可
场景七:小明把分支合并到主干
新功能开发完成,体验很好,项目组决定把该功能合并到主干上。
①切换到 master 分支,选择 Merge Changes
②选择要合并的分支
③此时只是本地仓库合并,还是需要把master重新提交到远程仓库
④此时远程仓库master中也含有Hello了
场景八:项目要发版,小明打 tag
①创建Tag
起一个名字
②再次Push,选中Push Tag后提交
③此时还可以看到何时对这个仓库进行了具体的操作
④此时远程仓库上就可以找到对应的发行版本
7. 常用插件安装
以下插件需要先下载安装才能使用,找到以下界面进行搜索、下载;安装后根据提示,重启IDEA
(1)中文插件Chinese插件
使用中文插件后,功能界面全变成中文版的了,非常的友好!
(2)Translation(重要)
是一个很重要的插件;对于不经常使用英语的同学来说,对类,变量,方法想取一个合适的名字,又苦于英语不行想不出来,怎么办,这个插件能帮到你翻译!
安装后在工具栏上有一个小图标
注:有的人可能IDEA没有显示工具栏,可以在视图中进行设置
双击上面的小图标,就可以完成中文和英文的来回切换(英-->中、中--->英都可以)
包括可以帮我们翻译,这样方便我们看源码;选中某一段或某一个单词,右击鼠标:
(3)CodeGlance插件
使用此插件可以查看缩略图一样,快速切换到自己需要去的地方
效果如下:
(4)Alibaba Java Coding Guidelines插件
一款阿里巴巴公司试行的开发设计规范,只要命名规范不符合人家的开发规范就会报错,适合新手
(5)Maven Helper插件
主要功能如下:查找和排除冲突依赖项的简便方法,为包含当前文件或根模块的模块运行/调试 maven 目标的操作,运行/调试当前测试文件的操作
这个插件使用在Maven构建的项目,创建好Maven项目,打开pom.xml会有一个依赖分析
点开依赖分析,界面如下:
注:对于想要移除的依赖,直接选中,右击鼠标Exclude就可以移除,或者在pom.xml配置中删除
(6)MyBatisCodeHelperPro(重要)
这个是一款比较实用的插件。但是,现在需要收费;不过,也可以申请 7 天的免费测试码,体验一下在购买也可以的;具体功能如下:
提供 Mapper 接口与配置文件中对应 SQL 的导航.
编辑 XML 文件时自动补全.
根据 Mapper 接口, 使用快捷键生成 xml 文件及 SQL 标签. ResultMap 中的 property 支持自动补全,支持级联(属性 A.属性 B.属性 C).
快捷键生成@Param 注解. XML 中编辑 SQL 时, 括号自动补全. XML 中编辑 SQL 时, 支持参数自动补全(基于@Param 注解识别参数).
自动检查 Mapper XML 文件中 ID 冲突.
自动检查 Mapper XML 文件中错误的属性值.
支持 Find Usage.
支持重构从命名.
支持别名.
自动生成 ResultMap 属性.
快捷键: Option + Enter(Mac) | Alt + Enter(Windows)
当然也可以自己找到免费的,具体操作如下:把整个MyBatisCodeHelper-Pro文件夹复制粘贴到IDEA的plugins目录下,然后重启IDEA,就能看到这个插件了。或者直接导入对应的压缩包
第一步:先创建一个SpringBoot项目
基础设置
添加框架
第二步:具体使用
①先编写application.yml文件
server:port: 8080
spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/mybatisusername: rootpassword: 123type: org.springframework.jdbc.datasource.DriverManagerDataSource
mybatis:mapper-locations: classpath:mapper/*.xmlconfiguration:log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
②IDEA连接数据库,选择数据表,右击鼠标
③进行配置
④最终就可以生成操作Mybatis所需要的配置文件
(7)Lombok插件
这个插件是IDEA已经自动捆绑的;Lombok 能以简单的注解形式来简化 java 代码,提高开发人员的开发效率。例如开发中经常需要写的 javabean,都需要花时间去添加相应的getter/setter,也许还要去写构造器、equals 等方法,而且需要维护,当属性多时会出现大量的 getter/setter 方法,这些显得 很冗长也没有太多技术含量,一旦修改属性,就容易出现忘记修改对应方法的失误。Lombok能通过注解的方式,在编译时自动为属性生成构造器、getter/setter、equals、hashcode、toString 方法。
例如:对于一个Person类,我们可以提供一个@AllArgsConstructor、@Getter、@Setter注解,实际上就会自动生成有参构造方法、Set和Get方法,也能正常调用
package com.zl.stream;import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.Setter;public class Test {public static void main(String[] args) {// 创建对象Person p = new Person("张三", 18);// 调用方法p.getName();}
}@AllArgsConstructor
@Getter
@Setter
class Person{private String name;private int id;
}
相关文章:

IDEA全家桶式讲解 | IDEA安装、使用、断点调试、Git、插件 (第二篇)
目录 一:JavaEE阶段需要掌握的IDEA技能 1. 配置Tomcat 2. 配置Maven 3. IDEA连接数据库 4. 方便的特殊功能 5. 断点调试(重点) 6. IDEA中常用Git协同开发(重点) 7. 常用插件安装 一:JavaEE阶段需要…...

音视频基础之封装格式与音视频同步
封装格式的概念 封装格式(也叫容器)就是将已经编码压缩好的视频流、音频流及字幕按照一定的方案放到一个文件中,便于播放软件播放。 一般来说,视频文件的后缀名就是它的封装格式。 封装的格式不一样,后缀名也就不一样。 比如&a…...

外籍在读博士|赴新西兰奥克兰大学双院士导师麾下联合培养
N同学来自阿拉伯国家,但本硕博都是在我国某省属高校就读,现为材料学专业一年级博士生。联合培养首选澳洲国家,包括澳大利亚和新西兰,其次是美国,希望在2023年初出国,以完成整个学年的学习计划。在我们的帮助…...

Learning C++ No.11【string类实现】
引言: 北京时间:2023/2/19/8:48,昨天更新了有关进程状态的博客,然后在休息的时候,打开了腾讯视屏,然后看到了了一个电视剧,导致上头,从晚上6点看到了10点,把我宝贵的博客…...

实力见“证”:Tapdata 技术创新与发展潜力广受认可
Tapdata 积极拥抱各种“不确定”,变中求新,只为呈现出更加好用的产品。 而 Tapdata 在专业领域不断深耕,持续打磨产品能力的同时,也收获了诸多来自外界的肯定,从用户到投资人,从生态伙伴到技术媒体以及官方…...

【C++修炼之路】18.map和set
每一个不曾起舞的日子都是对生命的辜负 map和setmap和set一.关联式容器二.set2.1 set的介绍2.2 set的使用1.set的模板参数列表2.set的构造3.set的迭代器4.set修改操作5.bound函数三.multiset四.map3.1 map的介绍3.2 map的使用1.map的模板参数说明2.pair的介绍3.map的[]重载五.m…...

ChatGPT原理与技术演进剖析
—— 要抓住一个风口,你得先了解这个风口的内核究竟是什么。本文作者:黄佳 (著有《零基础学机器学习》《数据分析咖哥十话》) ChatGPT相关文章已经铺天盖地,剖析(现阶段或者只能说揣测)其底层原…...

Retrofit+Hilt后端请求小项目1--项目介绍
简介 本项目根据 youtube 对应教程实现而来 将会对对应代码以及依赖(如 Hilt、retrofit、coil)进行详细的分析与解读,同时缕清项目结构安排 如文章有叙述不清晰的,请直接查看原教程:https://www.youtube.com/watch?…...

实际项目角度优化App性能
前言:前年替公司实现了一个在线检疫App,接下来一年时不时收到该App的需求功能迭代,部分线下问题跟进。随着新冠疫情防控政策放开,该项目也是下线了。 从技术角度来看,有自己的独特技术处理特点。下面我想记录一下该App…...

Structure|Alphafold2在肽结构预测任务上的基准实验
题目:Benchmarking AlphaFold2 on peptide structureprediction 文献来源:2023, Structure 31, 1–9 代码:基准实验,比较了比较多的模型 1.背景介绍 由2-50个氨基酸构成的聚合物可以称为肽。但是关于肽和蛋白质之间的差异还是…...
Simple XML
简介 官网:https://simple.sourceforge.net/home.php Github:https://github.com/ngallagher/simplexml Simple 是用于 Java 的高性能 XML 序列化和配置框架。它的目标是提供一个 XML 框架,使 XML 配置和通信系统的快速开发成为可能。该框架…...

在代码质量和工作效率的矛盾间如何取舍?
这个问题的答案是,在很短的一段时期,编写高质量代码似乎会拖慢我们的进度。与按照头脑中首先闪现的念头编写代码相比,高质量的代码需要更多的思考和努力。但如果我们编写的不仅仅是运行一次就抛之脑后的小程序,而是更有实质性的软…...

rabbitMq安装(小短文)--未完成
rabbitMq是在activeMq的基础上创造的,有前者的功能,比前者强,属于后来居上。系统环境:windows10首先下载相关软件Erlang,因为他是这个语言写的。https://www.erlang.org/downloads然后安装,并且弄到环境变量里验证是否…...

Python调用MMDetection实现AI抠图去背景
这篇文章的内容是以 《使用MMDetection进行目标检测、实例和全景分割》 为基础,需要安装好 MMDetection 的运行环境,同时完成目标检测、实例分割和全景分割的功能实践,之后再看下面的内容。 想要实现AI抠图去背景的需求,我们需要…...

Java代码使用最小二乘法实现线性回归预测
最小二乘法简介最小二乘法是一种在误差估计、不确定度、系统辨识及预测、预报等数据处理诸多学科领域得到广泛应用的数学工具。它通过最小化误差(真实目标对象与拟合目标对象的差)的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数…...

linux-rockchip-音频相关
一、查看当前配置声卡状态 cat /proc/asound/cards二、查看当前声卡工作状态 声卡分两种通道,一种是Capture、一种是Playback。Capture是输入通道,Playback是输出通道。例如pcm0p属于声卡输出通道,pcm0c属于声卡输入通道。 ls /proc/asoun…...

Android Handler的内存抖动以及子线程创建Handler
一、介绍 Handler,作为一个在主线程存活的消息分发工具,在App开发过程使用频率很高,也是面试问的比较多的。 面试常见的比如:子线程如何创建?Handler的机制是什么?内存抖动等,接下来我们会针对H…...

机器学习算法原理之k近邻 / KNN
文章目录k近邻 / KNN主要思想模型要素距离度量分类决策规则kd树主要思想kd树的构建kd树的搜索总结归纳k近邻 / KNN 主要思想 假定给定一个训练数据集,其中实例标签已定,当输入新的实例时,可以根据其最近的 kkk 个训练实例的标签,…...

【期末复习】例题说明Prim算法与Kruskal算法
点睛Prim与Kruskal算法是用来求图的最小生成树的算法。最小生成树有n个顶点,n-1条边,不能有回路。Prim算法Prim算法的特点是从个体到整体,随机选定一个顶点为起始点出发,然后找它的权值最小的边对应的另一个顶点,这两个…...

AtCoder Beginner Contest 290 A-E F只会n^2
ABC比较简单就不再复述 D - Marking 简要题意 :给你一个长度为nnn的数组,下标为0到n−10 到 n-10到n−1,最初指针位于0,重复执行n-1次操作,每次操作的定义为将当前指针加上ddd,如果该位置为空(未填数),否则我们向右找到第一个为空…...
树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频
使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...

shell脚本--常见案例
1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件: 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...

AI Agent与Agentic AI:原理、应用、挑战与未来展望
文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例:使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例:使用OpenAI GPT-3进…...

MFC内存泄露
1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...
【Linux】C语言执行shell指令
在C语言中执行Shell指令 在C语言中,有几种方法可以执行Shell指令: 1. 使用system()函数 这是最简单的方法,包含在stdlib.h头文件中: #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...
IGP(Interior Gateway Protocol,内部网关协议)
IGP(Interior Gateway Protocol,内部网关协议) 是一种用于在一个自治系统(AS)内部传递路由信息的路由协议,主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...
java 实现excel文件转pdf | 无水印 | 无限制
文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...

【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)
服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力
引言: 在人工智能快速发展的浪潮中,快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型(LLM)。该模型代表着该领域的重大突破,通过独特方式融合思考与非思考…...
在四层代理中还原真实客户端ngx_stream_realip_module
一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...