初识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的资源
    • 把资源发送给浏览器

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/372938.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LLM指令微调Prompt的最佳实践(六):基于ChatGPT搭建聊天机器人

文章目录 1. 前言2. Prompt定义3. 搭建聊天机器人Chatbot3.1 角色定义1. system2. assistant3. user4. 总结 3.2 初始函数3.3 讲笑话机器人3.4 订餐机器人 4. 参考 1. 前言 前情提要&#xff1a; 《LLM指令微调Prompt的最佳实践&#xff08;一&#xff09;&#xff1a;Prompt原…

Apache AGE 安装部署

AGE概述 概述 我们可以通过源码安装、拉取docker镜像运行、直接使用公有云三种方式中的任意一种来使用Apache AGE 获取 AGE 发布版本 可以在 https://github.com/apache/age/releases 找到发布版本和发布说明。 源代码 源代码可以在 https://github.com/apache/age 找到…

万字长文整理Java多线程相关面试题

目录 ​1. 什么是线程和进程&#xff1f; 线程与进程有什么区别&#xff1f; 那什么是上下文切换&#xff1f; 进程间怎么通信&#xff1f; 什么是用户线程和守护线程&#xff1f; 2. 并行和并发的区别&#xff1f; 3. 创建线程的几种方式&#xff1f; Runnable接口和C…

Codeforces Round 954 (Div. 3) F. Non-academic Problem

思路&#xff1a;考虑缩点&#xff0c;因为是无向图&#xff0c;所以双连通分量缩完点后是一棵树&#xff0c;我们去枚举删除每一条树边的答案&#xff0c;然后取最小值即可。 #include <bits/stdc.h>using namespace std; const int N 3e5 5; typedef long long ll; …

3-6 构建线性模型解决温度计示数转换问题

3-6 构建线性模型解决温度计示数转换问题 直接上源码 %matplotlib inline import numpy as np import torch torch.set_printoptions(edgeitems2, linewidth75)导入必要的库并设置 PyTorch 的打印选项&#xff0c;确保在打印张量时显示边缘项和行宽。 #%% t_c [0.5, 14.0,…

gpt-4o看图说话-根据图片回答问题

问题&#xff1a;中国的人口老龄化究竟有多严重&#xff1f; 代码下实现如下&#xff1a;&#xff08;直接调用openai的chat接口&#xff09; import os import base64 import requests def encode_image(image_path): """ 对图片文件进行 Base64 编码 输入…

phpexcel导入导出

前言&#xff1a; 如果你到处的excel软件打开有问题&#xff0c;下面有介绍解决办法 导入 1. composer init 初始化 2. 下载phpspreadsheet 这里需要注意php版本&#xff0c;需要大于7.2 composer require phpoffice/phpspreadsheet3. 编写代码 <?php require vendo…

Linux多进程和多线程(八)多线程

多线程 线程定义线程与进程线程资源 线程相关命令 pidstat 命令 top 命令ps 命令常见的并发方案 1. 多进程模式2. 多线程模式 创建线程 1. pthread_create() 示例:创建一个线程 2. pthread_exit() 退出线程3. pthread_join() 等待线程结束 示例: 线程分离 创建多个线程 示例 1:…

“郑商企航”暑期社会实践赴美丽美艳直播基地开展调研

马常旭文化传媒网讯&#xff08;记者张明辉报道&#xff09;导读&#xff1a;2024 年 7 月 3 日&#xff0c;商学院暑期社会实践团“郑商企航”在河南省郑州市新密市岳村镇美丽美艳直播基地&#xff0c;展开了一场意义非凡的考察活动&#xff0c;团队成员深度调研了直播基地的产…

CTF php RCE(二)

0x04 php伪协议 这种我们是先看到了include才会想到&#xff0c;利用伪协议来外带文件内容&#xff0c;但是有些同学会问&#xff0c;我们怎么知道文件名是哪个&#xff0c;哪个文件名才是正确的&#xff0c;那么这里我们就得靠猜了 include函数 因为 include 是一个特殊的语…

C++笔试强训3

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、选择题1-5题6-10题 二、编程题题目一题目二 一、选择题 1-5题 如图所示&#xff0c;如图所示p-3指向的元素是6&#xff0c;printf里面的是%s&#xff0c;从6开…

Python入门 2024/7/8

目录 数据容器 dict(字典&#xff0c;映射) 语法 定义字典字面量 定义字典变量 定义空字典 从字典中基于key获取value 字典的嵌套 字典的常用操作 新增元素 更新元素 删除元素 清空字典 获取全部的key 遍历字典 统计字典内的元素数量 练习 数据容器的通用操作…

SQLite 命令行客户端 + Windows 批处理应用

SQLite 命令行客户端 Windows 批处理应用 下载 SQLite 客户端1. Bat 辅助脚本1. 执行SQL.bat执行 2. 导出Excel.bat执行效果 3. 导出HTML.bat执行效果 4. 清空-订单表.bat5. 订单表.bat 2. 测试 SQL1. 创建订单表.sql2. 插入订单表.sql3. 查询订单表.sql4. 清空订单表.sql5. 删…

Sentinel-1 Level 1数据处理的详细算法定义(二)

《Sentinel-1 Level 1数据处理的详细算法定义》文档定义和描述了Sentinel-1实现的Level 1处理算法和方程&#xff0c;以便生成Level 1产品。这些算法适用于Sentinel-1的Stripmap、Interferometric Wide-swath (IW)、Extra-wide-swath (EW)和Wave模式。 今天介绍的内容如下&…

Vuforia AR篇(八)— AR塔防上篇

目录 前言一、设置Vuforia AR环境1. 添加AR Camera2. 设置目标图像 二、创建塔防游戏基础1. 导入素材2. 搭建场景3. 创建敌人4. 创建脚本 前言 在增强现实&#xff08;AR&#xff09;技术快速发展的今天&#xff0c;Vuforia作为一个强大的AR开发平台&#xff0c;为开发者提供了…

前端图表库G2快速上手

文档地址&#xff1a; https://g2-v3.antv.vision/zh/docs/manual/getting-started/ https://g2.antv.antgroup.com/ 安装&#xff1a; pnpm i antv/g2在vue3中使用&#xff1a; <script setup> import {Chart} from antv/g2; import {onMounted} from "vue"…

python_zabbix

zabbix官网地址&#xff1a;19. API19. APIhttps://www.zabbix.com/documentation/4.2/zh/manual/api 每个版本可以有些差异&#xff0c;选择目前的版本在查看对于的api接口#token接口代码 import requests apiurl "http://zabbix地址/api_jsonrpc.php" data {&quo…

五、保存数据到Excel、sqlite(爬虫及数据可视化)

五、保存数据到Excel、sqlite&#xff08;爬虫及数据可视化&#xff09; 1&#xff0c;保存数据到excel1.1 保存九九乘法表到excel&#xff08;1&#xff09;代码testXwlt.py&#xff08;2&#xff09;excel保存结果 1.2 爬取电影详情并保存到excel&#xff08;1&#xff09;代…

苍穹外卖--启用和禁用员工

实现 package com.sky.controller.admin;import com.sky.constant.JwtClaimsConstant; import com.sky.dto.EmployeeDTO; import com.sky.dto.EmployeeLoginDTO; import com.sky.dto.EmployeePageQueryDTO; import com.sky.entity.Employee; import com.sky.properties.JwtPro…

使用Python绘制直方图并分析数据

使用Python绘制直方图并分析数据 在这篇博客中&#xff0c;我们将探讨如何使用Python中的pandas库和matplotlib库来绘制直方图&#xff0c;并分析数据文件中的内容。直方图是一种常用的图表类型&#xff0c;用于展示数据的分布情况。 代码示例 以下是一个完整的代码示例&a…