Spring Boot入门指南:轻松构建高效Spring应用(一)

一.Maven

搭建工具前提:

社区版idea版本:2021.1 -2022.1.4(卸载安装idea时要删除注册表)

专业版idea版本:无要求。

Q:为什么要2021/2022版而不是最新版?

A:版本才能使用Spring Boot Helper插件

1.什么是Mavan 

Maven是⼀个项⽬管理⼯具。基于POM(Project Object Model,项⽬对象模型)的概念,Maven可以通过⼀⼩段描述信息来管理项⽬的构建,报告和⽂档的项⽬管理⼯具软件。
简而言之:Maven是⼀个项⽬管理⼯具, 通过pom.xml⽂件的配置获取jar包,⽽不⽤⼿动去添加jar包。
举个例子~
想象一下,你正在盖房子,需要各种材料,如砖块、水泥、木材等。 Maven就像是你的材料供应商,它知道哪里可以找到这些材料(即Maven仓库),并且当你需要某种材料时,它会自动帮你订购并送到你的工地上。你不需要亲自去市场上搜索、购买每种材料,Maven会帮你处理这些繁琐的工作。
IDEA本⾝已经集成了Maven, 我们可以直接使⽤, ⽆需安装。
我这个版本使用的汉化版,是因为方便我之前使用,懒得换回来了。
但是一般这样直接创建Maven项目会导致IDEA界面卡死(好像是一种BUG吧),所以创建项目还是以下流程靠谱。

 点击 Create, 就创建好了⼀个Maven项⽬。


2.Mavan的核心功能

1.项目构建

Maven 提供了标准的,跨平台(Linux, Windows, MacOS等)的⾃动化项⽬构建⽅式。
当我们开发了⼀个项⽬之后, 代码需要经过编译, 测试, 打包, 发布等流程, 每次代码的修改, 都需要经过这些流程, 如果代码反复调试修改, 这个流程就需要反复进⾏, 就显得特别麻烦,, ⽽Maven 给我们提供了⼀套简单的命令来完成项⽬的构建,可以使项目构建自动化。
作用使项目构建自动化
举个例子~
想象你还在建造一栋房子,项目构建自动化就像是一个智能的建筑机器人。你只需要提供一份详细的建筑蓝图(这相当于pom.xml文件中的配置),包括房子的结构、材料、装修风格等,然后启动这个建筑机器人。机器人会自动按照蓝图进行房子的构建,从地基开始,一层层地往上建,直到房子完全建成。
好处提高效率了, 自动化构建过程省去了你手动指挥工人、协调材料、监督施工等繁琐步骤,大大提高了建房子的效率。
双击"package",, 就可以完成项⽬的打包操作。

Q:什么是打包?

A:

  • 就是把所有的class⽂件, 全部放在⼀起, 打成jar包或者war包。
  • jar包和war包都是⼀种压缩⽂件。
  • jar包就是把开发⼈员已经写好的⼀些代码进⾏打包. 打好的jar包就可以引⼊到其他项⽬中, 也可以直 接使⽤这些jar包中的类和属性. 另外也可以打成可执⾏jar包, 这样的包就可以通过java -jar命令来执⾏。
  • war包可以理解为是⼀个web项⽬,⾥⾯是项⽬的所有东西, 通常⽤于⽹站.

 2.依赖管理

上⾯说到, Maven是⼀个项⽬管理⼯具, 通过pom.xml⽂件的配置获取jar包,⽽不⽤⼿动去添加jar包
获取的jar包, 其实就是依赖。
Q:什么是pom.xml?
A:pom.xml 就是maven 的配置⽂件,⽤以描述项⽬的各种信息

举个栗子~ 

想象一下,你还在盖房子(不装了,我爸是房地产大亨),需要各种材料,如砖块、水泥、木材等。Maven就像是你的材料供应商,它知道哪里可以找到这些材料(即Maven仓库),并且当你需要某种材料时,它会自动帮你订购并送到你的工地上。你不需要亲自去市场上搜索、购买每种材料,Maven会帮你处理这些繁琐的工作。

好处:这样可以大大节省你的时间和精力,确保你不会遗漏任何必要的材料,同时避免了材料版本或质量不兼容的问题。

⽐如前⾯学习JDBC时, 我们需要⼿动下载mysql-connector-java的包,并且添加到项⽬中。

 

如果使⽤Maven,我们只需要在pom.xml中引⼊mysql-connector-java的依赖就可以了 

刷新完之后,就可以在项⽬中看到新加⼊的jar包。

1.依赖传递

如上图,项⽬A通过Maven引⼊JarA时,会⾃动引⼊JarB和JarC.JarA和项⽬B就是项⽬A的直接依赖.
JarB,JarC是间接依赖.

直接依赖:在当前项⽬中通过依赖配置建⽴的依赖关系

间接依赖:被依赖的资源如果依赖其他资源,当前项⽬间接依赖其他资源 

早期我们没有使⽤maven时,向项⽬中添加依赖的jar包,需要把所有的jar包都复制到项⽬⼯程下.⽐如A依赖B,B依赖C,那么A项⽬引⼊B的同时,也需要引⼊C,如果我们⼿动管理这个依赖,这个过程
就会⽐较⿇烦,我们需要知道每个库都依赖哪些库,以及这些依赖之间的版本是如何关联的


⽐如我们要吃⽕锅,需要有锅,有调料,有⻝材,以及确认什么样的锅,什么样的⻝材.
⽐如去医院看病,需要带上以往的病历,检查结果,处⽅等,并且要确认带的资料是正确的,如果⽇期错了,或者患者错了,带少了,就需要回去重新拿.

但使⽤maven的话,就可以避免管理所需依赖的关系。我们只需要在pom⽂件中,定义直接依赖就可以了,由于maven的依赖具有传递性,所以会⾃动把所依赖的其他jar包也⼀起导⼊


⽐如吃⽕锅,现在我们可以点⼀个海底捞外卖,直接就把所有⻝材都送过来了,包括什么锅,配什么菜.⽐如去医院看病,借助"互联⽹",实现了信息共享,只需要带上⾝份证,以往的病历和检查结果就都可以

2.依赖排除

当前阶段我们需要依赖的库并不多,但随着项⽬的越来越复杂,库之间的依赖关系也会变得越来越复杂.如上图中,如果项⽬A不需要JarB,也可以通过排除依赖的⽅式来实现.


排除依赖:指主动断开依赖的资源。(被排除的资源⽆需指定版本)

⽐如,我下了⼀个快递单⼦,默认会有⼀个服务,就是快递⼩哥会上⻔取件,但是我刚好要出⻔,⽽且顺路经过站点,也可以选择⾃⼰送过去

还有存在依赖冲突的情况,比如有两个依赖是不同路径内容内容版本相同,则采用路径最近原则。

二.Maven Help插件

 1.什么是Maven Help插件

Maven Help插件是Maven项目构建工具中的一个插件,它提供了一系列目标(goals),旨在帮助开发者更好地理解和操作Maven构建环境。

举个栗子~

你正在建造一栋房子,而Maven就是你的建筑团队和工具库。在这个过程中,Maven Help插件就像是一个智能的助手,它能帮助你更好地理解和操作整个建房过程。

Maven Help插件的功能:

  1. 查看当前激活的“建筑方案”:就像在建房子时,你可能会根据不同的需求选择不同的建筑方案(比如现代风格、古典风格等)。Maven Help插件能告诉你当前激活的是哪个“建筑方案”(即Maven的Profile)。
  2. 查看所有可用的“建筑方案”:它还能列出你所有可用的“建筑方案”,让你知道有哪些选择。
  3. 查看“建筑蓝图”的最终版:建房子前,你会有一个建筑蓝图。但在实际建造过程中,可能会有一些修改和调整。Maven Help插件能帮你查看最终的“建筑蓝图”(即有效POM),这个蓝图包含了所有的修改和调整。
  4. 查看“建筑工具”的实际配置:建房子时,你会使用一些工具,比如锤子、锯子等。这些工具可能有一些配置或设置。Maven Help插件能帮你查看这些“建筑工具”(即Maven设置)的实际配置。
  5. 了解“建筑动作”的详细信息:在建房过程中,你会执行一些动作,比如打地基、砌墙等。Maven Help插件能帮你了解这些“建筑动作”(即Maven插件或目标)的详细信息,比如需要哪些材料、工具等。
  6. 查看“建筑环境”的信息:建房子时,你需要了解周围的环境,比如天气、地形等。Maven Help插件能帮你查看“建筑环境”(即系统属性和环境变量)的信息。
  7. 计算“建筑材料”的数量:在建房过程中,你可能需要计算一些材料的数量,比如需要多少块砖、多少袋水泥等。Maven Help插件能帮你计算这些“建筑材料”(即Maven表达式)的数量。

2.安装Maven插件

三.Maven仓库 

 我们通过短短⼏⾏代码,就把依赖jar包放在了项⽬⾥,具体是如何做的呢?

 这个代码,我们称之为"坐标",也就是唯⼀的.

在Maven中,根据groupId、artifactId、version的配置,来唯⼀识别⼀个jar包,缺⼀不可.

当我们在pom⽂件中配置完依赖之后,点击刷新,Maven会根据坐标的配置,去仓库⾥寻找Jar包,并把他下载下来,添加到项⽬中.这个Jar包下载的地⽅就称为仓库.

仓库:⽤于存储资源,管理各种jar包

Maven仓库的本质就是⼀个⽬录(⽂件夹),这个⽬录被⽤来存储开发中所有依赖(jar包,插件等).

1.本地仓库

本地仓库:⾃⼰计算机上的⼀个⽬录(⽤来存储jar包)
当项⽬中引⼊对应依赖jar包后,⾸先会查找本地仓库中是否有对应的jar包

  • 如果有,则在项⽬直接引⽤。
  • 如果没有,则去中央仓库中下载对应的jar包到本地仓库。

 

可以通过以下方式查看本地仓库地址

 2.中央仓库

中央仓库:maven软件中内置⼀个远程仓库地址,就是中央仓库,服务于整个互联⽹.由Maven团队维护,全球唯⼀.
仓库地址:Central Repository:

可以通过https://mvnrepository.com/这个⽹站来查询并下载
我们可以把⾃⼰写好的Jar包上传到中央仓库(具备⼀定的要求),也可以从中央仓库下载Jar包

3.私服(私有服务求)

私服:⼀般由公司团队搭建的私有仓库.
私服属于某个公司,或者某个部⻔,往往需要⼀定权限.有了私服之后,Maven依赖下载的顺序⼜发⽣了变化。

当Maven需要下载资源的时候

  1. 先从本地仓库获取,本地仓库存在,则直接返回
  2. 如果本地仓库没有,就从私服请求,私服存在该资源,就直接返回
  3. 如果私服上不存在该资源,则从中央仓库下载,中央仓库不存在,就报错了...
  4. 如果中央仓库中存在,就先缓存在私服上之后,再缓存到本地仓库⾥,再为Maven的下载请求提供服务
  5. 私服是很多⼈在使⽤的,所以只需要第⼀个使⽤者下载⼀次就可以了 

 

四.Maven设置国内源(重要) 

因为中央仓库在国外,所以下载起来会⽐较慢,所以咱们选择借助国内⼀些公开的远程仓库来下载资源接下来介绍,如何设置国内源。

1.配置当前项⽬setting

不同电脑设置的Maven路径不同
settings和repository可以修改设置为其他路径,两个路径不要有中⽂。

一般创建Maven项目时这里是默认的路径,根据这个路径找到.m2文件,再把这个文件复制到你移动的地方(建议空间充裕些),这个操作相当于仓库搬家

 2.配置国内源

Maven仓库默认在国外https://mvnrepository.com/,国内使⽤时会⽐较慢,我们可以更换为阿⾥云的仓库
也可以选择别的仓库,参考:https://zhuanlan.zhihu.com/p/627320558 (Maven镜像地址大全)

打开settings.xml,在mirrors节点上,添加内容如下:


 3.设置新的项目setting

上述配置的内容,只对当前项⽬⽣效,为了让后续新建的项⽬也⽣效,需要重新设置⼀下新项⽬的Settings。

当前项⽬和新项⽬共⽤⼀个setttings⽂件即可,所以新项⽬的设置,只需要确认⼀下settings⽂件的路径即可.

 

  • 25
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值