初识SpringBoot

1.Maven

Maven是⼀个项⽬管理⼯具, 通过pom.xml⽂件的配置获取jar包,⽽不⽤⼿动去添加jar包

  • 主要功能
    1. 项⽬构建
    2. 管理依赖

构建Maven项目
在这里插入图片描述
在这里插入图片描述

1.1项目构建

Maven 提供了标准的,跨平台(Linux, Windows, MacOS等)的⾃动化项⽬构建⽅式

当我们开发了⼀个项⽬之后, 代码需要经过编译, 测试, 打包, 发布等流程, 每次代码的修改, 都需要经过这些流程, 如果代码反复调试修改, 这个流程就需要反复进⾏, 就显得特别⿇烦, ⽽Maven 给我们提供了⼀套简单的命令来完成项⽬的构建
在这里插入图片描述

1.2依赖管理

依赖: 指当前项⽬运⾏所需要的jar包.

  • 通过pom.xml⽂件的配置获取jar包,⽽不⽤⼿动去添加jar包获取的jar包
  • pom.xml 就是maven 的配置⽂件,⽤以描述项⽬的各种信息
  1. 在pom⽂件 标签内, 添加依赖坐标
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.30</version>
</dependency>
  1. 添加依赖过后记得点击刷新按钮, 引⼊新加⼊的依赖jar包

在这里插入图片描述
3.刷新过后就可以看到新的jar包
在这里插入图片描述

  • 为什么使用Maven?
  • 早期我们没有使⽤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是间接依赖.

1.3Maven Help插件

  • 当项⽬⽐较复杂时, 我们就会有Jar包冲突的问题, 这时候就需要去解决依赖冲突. 解决冲突之前, 需要先找到冲突, 我们可以使⽤Maven Help插件来观察包和包之间的依赖关系
    在这里插入图片描述
  • 查看依赖关系

在这里插入图片描述

1.4 Maven 仓库

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

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

  • 仓库:⽤于存储资源,管理各种jar包
    在这里插入图片描述

  • Maven仓库分为两⼤类: 本地仓库和远程仓库
    1.本地仓库: ⾃⼰计算机上的⼀个⽬录(⽤来存储jar包),当项⽬中引⼊对应依赖jar包后,⾸先会查找本地仓库中是否有对应的jar包
    2.maven 软件中内置⼀个远程仓库地址,就是中央仓库,服务于整个互联⽹. 由 Maven 团队
    维护,全球唯⼀

  • https://mvnrepository.com/ 可以通过这个网站查找依赖
    3.私有服务器, 也称为私服

  • 私服: ⼀般由公司团队搭建的私有仓库(比如国内的阿里)
    在这里插入图片描述

  1. 先从本地仓库获取, 本地仓库存在, 则直接返回
  2. 如果本地仓库没有, 就从私服请求, 私服存在该资源, 就直接返回
  3. 如果私服上不存在该资源,则从中央仓库下载, 中央仓库不存在, 就报错了…
  4. 如果中央仓库中存在, 就先缓存在私服上之后,再缓存到本地仓库⾥, 再为Maven的下载请求提供服务

Maven 设置国内源

在这里插入图片描述

  1. Maven配置⽂件地址为: D:\Maven.m2\settings.xml
  2. 配置国内源
<mirror>
 <id>aliyunmaven</id>
 <mirrorOf>central</mirrorOf>
 <name>阿⾥云公共仓库</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
 </mirror>
  1. 设置新项⽬的setting
    在这里插入图片描述

2.Spring Boot 项⽬创建

2.1安装Spring Boot Help插件

在这里插入图片描述

  • 安装过后
    在这里插入图片描述

2.2创建SpringBoot项⽬

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 项目建立好了的界面
    在这里插入图片描述
    Spring Boot 项⽬有两个主要的⽬录:
    • src/main/java: Java 源代码
    • src/main/resources: 为静态资源或配置⽂件:
    ◦ /static:静态资源⽂件夹, ⽐如js, css, html等静态⽂件, 不需要服务器数据进⾏绑定的
    ⻚⾯
    ◦ /templates:模版资源⽂件夹, 主要存放动态模板⽂件, ⽐如JSP, Freemarker, Thymeleaf等需
    要服务器动态渲染数据的⽂件
    • src/test/java: 测试代码源代码
    • target: 编译后的⽂件路径
    • pom.xml: maven 配置⽂件

  • 启动
    在这里插入图片描述
    在这里插入图片描述

  • 同时SpringBoot 内置了Tomcat服务器, ⽆需配置即可直接运⾏
    在这里插入图片描述

2.3请求响应流程分析

  • 浏览器输⼊URL之后, 发起请求, 就和服务器之间建⽴了连接
    在这里插入图片描述
    浏览器:
    • 输⼊⽹址:http://127.0.0.1:8080/hello
    ◦ 通过IP地址127.0.0.1定位到⽹络上的⼀台计算机, 127.0.0.1就是本机
    ◦ 通过端⼝号8080找到计算机上对应的进程 , 也就是在本地计算机中找到正在运⾏的8080端⼝的
    程序
    ◦ /user/sayhi是请求资源位置
    ▪ 资源:对计算机⽽⾔资源就是数据
    • web资源:通过⽹络可以访问到的资源(通常是指存放在服务器上的数据)
    http://127.0.0.1:8080/user/sayhi ,就是向本地计算机中的8080端⼝程序,获取资源位置
    是/user/sayhi的数据
    8080端⼝程序,在服务器找/hello位置的资源数据,发给浏览器
    服务器:
    • 接收到浏览器发送的信息(如:/user/sayhi)
    • 在服务器上找到/user/sayhi的资源
    • 把资源发送给浏览器

相关推荐

  1. Dockerfile

    2024-07-10 10:56:07       43 阅读
  2. MyBatis

    2024-07-10 10:56:07       50 阅读
  3. docker

    2024-07-10 10:56:07       34 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-10 10:56:07       4 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-10 10:56:07       5 阅读
  3. 在Django里面运行非项目文件

    2024-07-10 10:56:07       4 阅读
  4. Python语言-面向对象

    2024-07-10 10:56:07       4 阅读

热门阅读

  1. lvs集群

    2024-07-10 10:56:07       9 阅读
  2. Perl 语言入门学习

    2024-07-10 10:56:07       9 阅读
  3. 大模型/NLP/算法面试题总结3——BERT和T5的区别?

    2024-07-10 10:56:07       15 阅读
  4. 单元测试核心类备忘

    2024-07-10 10:56:07       10 阅读
  5. Node.js有什么优点

    2024-07-10 10:56:07       10 阅读
  6. Python爬虫-获取懂车帝“指定车型”的销量数据

    2024-07-10 10:56:07       9 阅读
  7. 深入解析CSS中的!important规则:优先级与最佳实践

    2024-07-10 10:56:07       10 阅读
  8. Django中模型的基于类的混入

    2024-07-10 10:56:07       9 阅读