Maven
Apache Maven 是一个项目管理和构建工具**,它基于项目对象模型(POM)的概念,通过一小段描述信息来管理项目的构建。**
Maven的作用
依赖管理:方便快捷的管理项目依赖的资源(jar包),避免版本冲突问题。
统一项目结构:提供标准、统一的项目结构。
项目构建:标准跨平台(Linux、Windows、MacOS)的自动化项目构建方式。



引入依赖,会先查找本地仓库有没有,没有在从远程仓库查找(私服 一般是公司内部有的),没有再从中央仓库查找,再从中央仓库下载到私服,再从私服中下载到本地仓库,再从本地仓库中下载。
Maven的安装

配置Maven环境 (全局)

将你所配置的路径输入进去

选择jdk的版本
Maven坐标

2023版idea创建Maven项目

依赖管理
依赖:指当前项目运行所需要的jar包,一个项目中可以引入多个依赖。
引入依赖
<dependencies>
<dependency>...</dependency>
<dependency>...</dependency>
</dependencies>

依赖传递

依赖范围

生命周期
Maven的生命周期就是为了对所有的maven项目构建过程进行抽象和统一。

在同一套生命周期中,当运行后面的阶段时,前面的阶段都会运行。

Maven高级
分模块设计与开发
分模块设计:将项目按照功能拆分成若干个子模块,方便项目的管理维护、扩展,也方便模块间的相互调用,资源共享。

分模块设计需要先针对模块功能进行设计,再进行编码。不会先将工程开发完毕,然后进行拆分
继承与聚合

继承关系实现

版本锁定
在maven中,可以在父工程的pom文件中通过**<dependencyManagement>**来统一管理依赖版本。
子工程引入依赖时,无需指定 <version> 版本号,父工程统一管理。变更依赖版本,只需在父工程中统一变更。

把所有的版本聚到一起,方便查找修改

<dependencies> 是直接依赖,在父工程配置了依赖,子工程会直接继承下来。 <dependencyManagement> 是统一管理依赖版本,不会直接依赖,还需要在子工程中引入所需依赖(无需指定版本)
聚合
聚合:将多个模块组织成一个整体,同时进行项目的构建。
聚合工程 :一个不具有业务功能的"空"工程(有且仅有一个pom文件)
作用: 快速构建项目(无需根据依赖关系手动构建,直接在聚合工程上构建即可)


聚合工程中所包含的模块,在构建时,会自动根据模块间的依赖关系设置构建顺序,与聚合工程中模块的配置书写位置无关。
私服
私服是一种特殊的远程仓库,它是架设在局域网内的仓库服务,用来代理位于外部的中央仓库,用于解决团队内部的资源共享与资源同步问题。
私服在企业项目开发中,一个项目/公司,只需要一台即可(无需我们自己搭建,会使用即可)。

资源上传与下载
SpringBootWeb
Spring Boot 可以帮助我们非常快速的构建应用程序、简化开发、提高效率。
创建springboot工程:
创建springboot工程,并勾选web开发相关依赖。


注解
@RestController
@RestController的作用等同于@Controller + @ResponseBody @Controller注解,表明了这个类是一个控制器类
@RequestMapping
Spring-MVC
Spring MVC(Model-View-Controller)是Spring框架中的一个模块,用于构建基于MVC设计模式的Web应用程序。Spring MVC将应用程序分为三个主要部分:
Model :负责处理数据和业务逻辑。
View :负责展示数据。
Controller :负责处理用户请求并返回响应。
Spring MVC通过一系列的注解(如@Controller、@RequestMapping、@RequestParam等)简化了Web应用程序的开发。