目录
[1. 创建一个Maven项目](#1. 创建一个Maven项目)
[2. 核心功能](#2. 核心功能)
[2.1 项目构建](#2.1 项目构建)
[2.2 依赖管理](#2.2 依赖管理)
[2.2.1 依赖配置](#2.2.1 依赖配置)
[2.2.2 依赖传递](#2.2.2 依赖传递)
[2.2.3 依赖排除](#2.2.3 依赖排除)
[2.3 Maven Helper插件](#2.3 Maven Helper插件)
[1. SpringBoot项目创建](#1. SpringBoot项目创建)
[1.1 使用IDEA创建](#1.1 使用IDEA创建)
[1.2 使用网页创建](#1.2 使用网页创建)
[2. 项目代码和目录介绍](#2. 项目代码和目录介绍)
[3. 运行项目](#3. 运行项目)
[4. 输出Hello World](#4. 输出Hello World)
[5. Web服务器](#5. Web服务器)
一、Maven
Maven 是一个基于 POM(Project Object Model)的项目管理和构建工具,主要用于 Java 项目。它简化了项目构建、依赖管理、报告生成和文档生成等任务,通过标准化的项目结构和生命周期管理,提高开发效率。
1. 创建一个Maven项目
IDEA本身已经集成了Maven,我们可以直接使用无需安装。


2. 核心功能
2.1 项目构建
Maven提供了标准的,跨平台(Linux,Windows,MacOS等)的自动化项目构建方式。
当我们开发了一个项目之后,代码需要经过编译,测试,打包,发布等流程,每次代码的修改,都需要经过这些流程,如果代码反复调试修改,这个流程就需要反复进行,就显得特别麻烦,而Maven给我们提供了一套简单的命令来完成项目的构建。

如点击package就可以完成项目的打包操作:


jar包(Java Archive)是Java平台的标准打包格式,用于封装编译后的Java类文件、资源文件和元数据。它通常用于库或独立应用程序。
war包 (Web Application Archive)是专为Web应用程序设计的打包格式,基于jar包扩展而来,包含Web应用所需的特定目录结构(如
WEB-INF/
)和配置文件(如web.xml
)。
2.2 依赖管理
Maven是一个项目管理工具,通过pom.xml文件的配置获取jar包,而不用手动去添加jar包。获取的jar包,其实就是依赖。
pom.xml就是maven的配置文件,用以描述项目的各种信息。
2.2.1 依赖配置
如JDBC,需要我们手动下载mysql-connector-java的包,并且添加到项目中。
在maven环境下,我们只需要在pom.xml中引入mysql-connector-java的依赖就可以了。
XML
<dependencies>
<!--里面放置项目的依赖坐标,可为多个-->
</dependencies>

然后点击刷新:

就可以在项目中看到新加入的jar包。
2.2.2 依赖传递
依赖传递(Transitive Dependency)指在软件开发中,当项目A依赖项目B,而项目B又依赖项目C时,项目A会自动继承对项目C的依赖关系。这种机制简化了依赖管理,但可能引发版本冲突或安全性问题。
在pom.xml
中,通过<dependency>
声明依赖,默认启用传递性。可通过<scope>
或<optional>
控制传递行为:
XML
<dependency>
<groupId>org.example</groupId>
<artifactId>projectB</artifactId>
<version>1.0</version>
<!-- 禁止传递依赖 -->
<optional>true</optional>
</dependency>
如上文中,我们只添加了mysql-connector-java的依赖,却另外产生了protobuf-java的jar包,就是因为前者依赖后者的依赖传递。
2.2.3 依赖排除
依赖排除是指在项目管理中,通过配置显式地移除某个依赖项中的特定传递性依赖。这通常用于解决版本冲突、重复依赖或不需要的依赖问题。
在Maven项目中,可以在<dependency>
标签内使用<exclusions>
标签来排除不需要的传递性依赖:
XML
<dependency>
<groupId>com.example</groupId>
<artifactId>example-library</artifactId>
<version>1.0.0</version>
<exclusions>
<exclusion>
<groupId>org.unwanted</groupId>
<artifactId>unwanted-module</artifactId>
</exclusion>
</exclusions>
</dependency>
2.3 Maven Helper插件
安装Maven Helper插件后,打开pom.xml可以看到jar包之间的依赖关系:

3.Maven仓库
Maven 仓库是用于存储项目依赖(如 JAR 文件)和插件的地方。主要分为三类:
- 本地仓库 :默认位于用户目录下的
.m2/repository
,存储从远程仓库下载的依赖。 - 中央仓库 :Maven 官方维护的公共仓库,包含大量开源库(默认地址:
https://repo.maven.apache.org/maven2
)。 - 远程仓库 :包括私服(如 Nexus、Artifactory)或其他公开仓库(如 JCenter),需在
pom.xml
或settings.xml
中配置。

二、第一个SpringBoot程序
Spring 是一个轻量级的开源框架,用于构建企业级应用程序。它提供了一系列模块,如 Spring MVC、Spring Security、Spring Data 等,支持依赖注入(DI)和面向切面编程(AOP)。Spring 的核心是 IoC(控制反转)容器,负责管理对象的生命周期和依赖关系。
Spring Boot 是 Spring 的扩展,旨在简化 Spring 应用程序的初始搭建和开发过程。它通过自动配置、起步依赖(Starter Dependencies)和嵌入式服务器等特性,减少了开发者的配置工作。Spring Boot 默认集成了许多 Spring 模块,使得开发者可以快速构建独立运行的、生产级别的应用程序。
1. SpringBoot项目创建
1.1 使用IDEA创建
注:若使用社区版IDEA,则需要安装SpringBoot Helper插件,专业版不需要。

点next,

点create就创建好了。
1.2 使用网页创建

设置过程基本和IDEA差不多,最后点击CREATE,会触发下载项目:

然后再使用Idea打开之后,Spring Boot项目就算创建成功了。
2. 项目代码和目录介绍
观察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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.5.6</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.bite</groupId>
<artifactId>springboot-demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springboot-demo</name>
<description>springboot-demo</description>
<properties>
<java.version>17</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
主要观察<dependencies>标签里的内容,引入了两个依赖:
- spring-boot-starter-web:包含了web应用开发所需要的常见依赖
- spring-boot-starter-test:包含了单元测试所需要的常见依赖
每一个SpringBoot工程,都有一个父工程,依赖的版本号,在父工程中统一管理。父工程指定版本号后,就会自动引入和所指定版本对应的依赖,创建的SpringBoot项目,会继承SpringBoot父工程。

项目目录:

- src/main/java:Java源代码
- src/main/resources:为静态资源或配置文件
- src/test/java:测试代码源代码
- target:编译后的文件路径
- pom.xml:Maven配置文件
3. 运行项目

可以看到如下图所示的日志:

4. 输出Hello World
在创建的项目包路径下创建Java文件HelloWorld,并实现如下代码:
java
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloWorld {
@RequestMapping("/hello")
public String hello() {
return "Hello World!";
}
}
重新启动项目,在浏览器上访问http://127.0.0.1:8080/hello:

5. Web服务器
Web服务器是用于存储、处理和传递网页内容的软件或硬件系统。它通过HTTP协议与客户端(如浏览器)通信,响应请求并返回HTML文件、图像、视频等资源。常见的Web服务器软件包括Apache、Nginx、IIS、Tomcat等。

SpringBoot内置了Tomcat服务器,无需配置即可直接运行。
Tomcat默认端口号是8080,所以我们程序访问时的端口号也是8080。
创作不易,麻烦给个三连支持一下吧