JavaEE--SpringBoot
目录
一、Maven
1. 创建一个Maven项目
2. 核心功能
2.1 项目构建
2.2 依赖管理
2.2.1 依赖配置
2.2.2 依赖传递
2.2.3 依赖排除
2.3 Maven Helper插件
3.Maven仓库
二、第一个SpringBoot程序
1. SpringBoot项目创建
1.1 使用IDEA创建
1.2 使用网页创建
2. 项目代码和目录介绍
3. 运行项目
4. 输出Hello World
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的依赖就可以了。
<dependencies><!--里面放置项目的依赖坐标,可为多个-->
</dependencies>
然后点击刷新:
就可以在项目中看到新加入的jar包。
2.2.2 依赖传递
依赖传递(Transitive Dependency)指在软件开发中,当项目A依赖项目B,而项目B又依赖项目C时,项目A会自动继承对项目C的依赖关系。这种机制简化了依赖管理,但可能引发版本冲突或安全性问题。
在pom.xml
中,通过<dependency>
声明依赖,默认启用传递性。可通过<scope>
或<optional>
控制传递行为:
<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>
标签来排除不需要的传递性依赖:
<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 是一个轻量级的开源框架,用于构建企业级应用程序。它提供了一系列模块,如 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 使用网页创建
打开spring Initializr:
设置过程基本和IDEA差不多,最后点击CREATE,会触发下载项目:
然后再使用Idea打开之后,Spring Boot项目就算创建成功了。
2. 项目代码和目录介绍
观察pom文件:
<?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,并实现如下代码:
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。
创作不易,麻烦给个三连支持一下吧