文章目录
- 前言
- 一、了解Maven
- 1.1 Maven功能
- - 项⽬构建
- - 管理依赖
- 1.2Maven仓库
- 二、第一个SpringBoot项目
- 总结
前言
Spring Boot是一个用于构建快速、简单和可扩展的生产级应用程序的框架。它基于Spring框架,提供了开发微服务和独立的应用程序所需的一切。
一、了解Maven
Maven是⼀个项⽬管理⼯具。基于POM(Project Object Model,项⽬对象模型)的概念,Maven可以通过⼀⼩段描述信息来管理项⽬的构建,报告和⽂档的项⽬管理⼯具软件。
1.1 Maven功能
Maven提供的功能⾮常多, Maven在咱们课程中的体现主要是以下两个⽅⾯:
- 项⽬构建
Maven 提供了标准的,跨平台(Linux, Windows, MacOS等)的⾃动化项⽬构建⽅式,当我们开发了⼀个项⽬之后, 代码需要经过编译, 测试, 打包, 发布等流程, 每次代码的修改, 都需要经过这些流程, 如果代码反复调试修改, 这个流程就需要反复进⾏, 就显得特别麻烦,而Maven 给我们提供了⼀套简单的命令来完成项⽬的构建。
- 管理依赖
Maven是⼀个项⽬管理⼯具, 通过pom.xml⽂件的配置获取jar包,⽽不⽤⼿动去添加jar包获取的jar包, 其实就是依赖。
依赖配置:
如果使⽤Maven, 我们只需要在pom.xml中引⼊mysql-connector-java的依赖就可以了。
<dependencies><!--⾥⾯放置项⽬的依赖坐标, 可为多个 -->
</dependencies>
依赖传递:
早期我们没有使⽤maven时, 向项⽬中添加依赖的jar包,需要把所有的jar包都复制到项⽬⼯程下.⽐如 A 依赖B, B依赖C, 那么 A项⽬引⼊B 的同时, 也需要引⼊C, 如果我们⼿动管理这个依赖, 这个过程就会⽐较⿇烦, 我们需要知道每个库都依赖哪些库, 以及这些依赖之间的版本是如何关联的,但使⽤maven的话, 就可以避免管理所需依赖的关系。我们只需要在pom⽂件中, 定义直接依赖就可以了, 由于maven的依赖具有传递性,所以会⾃动把所依赖的其他jar包也⼀起导⼊。
项⽬A 通过Maven 引⼊ Jar A 时, 会⾃动引⼊ Jar B 和Jar C.
Jar A 和项⽬B就是项⽬A的直接依赖.
Jar B, Jar C是间接依赖.
直接依赖:在当前项⽬中通过依赖配置建⽴的依赖关系
间接依赖:被依赖的资源如果依赖其他资源,当前项⽬间接依赖其他资源
依赖排除:指主动断开依赖的资源。(被排除的资源⽆需指定版本)
当前阶段我们需要依赖的库并不多, 但随着项⽬的越来越复杂, 库之间的依赖关系也会变得越来越复杂.
如上, 如果项⽬A不需要Jar B,也可以通过排除依赖的⽅式来实现.
eg.
<dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>6.0.6</version><!--排除依赖--><exclusions><exclusion><artifactId>spring-jcl</artifactId><groupId>org.springframework</groupId></exclusion></exclusions>
</dependency>
1.2Maven仓库
仓库:⽤于存储资源,管理各种jar包
Maven仓库的本质就是⼀个⽬录(⽂件夹),这个⽬录被⽤来存储开发中所有依赖(jar包, 插件等).
我们通过短短⼏⾏代码, 就把依赖jar包放在了项⽬⾥, 具体是如何做的呢?
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.30</version>
</dependency>
这个代码, 我们称之为 “坐标”, 也就是唯⼀的.
在Maven中, 根据 groupId、artifactId、version 的配置, 来唯⼀识别⼀个 jar 包, 缺⼀不可,当我们在pom⽂件中配置完依赖之后, 点击刷新, Maven会根据坐标的配置, 去仓库⾥寻找Jar包, 并把他下载下来, 添加到项⽬中. 这个Jar包下载的地⽅就称为仓库。
二、第一个SpringBoot项目
Spring Boot 项⽬有两个主要的⽬录:
• src/main/java: Java 源代码 。
•src/main/resources: 为静态资源或配置⽂件:
◦ /static:静态资源⽂件夹, ⽐如前期学的js, css,html等静态⽂件, 不需要服务器数据进⾏绑定的页面。
◦ /templates:模版资源⽂件夹, 主要存放动态模板⽂件,比如JSP,Freemarker, Thymeleaf等需 要服务器动态渲染数据的⽂件 。
• src/test/java: 测试代码源代码。
@RestController
@RequestMapping("/user")
public class UserController {@RequestMapping("/sayHi")public String sayHi(){return "hello,Spring";}
}
我们电脑中可能有多个项目,如果8080端口被占用了,程序会报错,我们可以尝试在application.properties中更改端口号。
此时9090端口号可以使用
总结
程序运行出现bug是常有的事,我们要学会看日志,一般读日志从下往上读,一段一段看,先看最后一段的首行,一般的错误原因是程序未启动,url路径不正确,未添加注解等,尝试自己解决问题。
最后,码字不易,如果觉得对你有帮助的话请点个赞吧,关注我,一起学习,一起进步!