Spring框架基本使用(Maven详解)
前言:
当我们创建项目的时候,第一步少不了搭建环境的相关准备工作。
那么如果想让我们的项目做起来方便快捷,应该引入更多的管理工具,帮我们管理。
Maven的出现帮我们大大解决了管理的难题!!
Maven:
Maven是什么?
官⽅对于Maven的描述:
Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information.
Maven提供的功能:
1.项目构建
2.管理依赖
项目构建:
Maven 提供了标准的,跨平台(Linux, Windows, MacOS等)的⾃动化项⽬构建⽅式 当我们开发了⼀个项⽬之后, 代码需要经过编译, 测试, 打包, 发布等流程, 每次代码的修改, 都需要经过这些流程, 如果代码反复调试修改, 这个流程就需要反复进⾏, 就显得特别⿇烦,, ⽽Maven 给我们提供了⼀套简单的命令来完成项⽬的构建.
例如:
可以通过package命令将所有.class文件打成jar包。
ar包是⼀种压缩⽂件jar包就是把开发⼈员已经写好的⼀些代码进⾏打包. 打好的jar包就可以引⼊到其他项⽬中, 也可以直接使⽤这些jar包中的类和属性. 另外也可以打成可执⾏jar包, 这样的包就可以通过java -jar命令来执⾏。
依赖管理:
上⾯说到, Maven是⼀个项⽬管理⼯具, 通过pom.xml⽂件的配置获取jar包,⽽不⽤⼿动去添加jar包获取的jar包, 其实就是依赖.
pom.xml 就是maven 的配置⽂件,⽤以描述项⽬的各种信息
依赖是什么?
指当前项目运行时所需要的jar包。
例如:
此时该项目中需要用到数据库MySql,那么如何将数据的资源和该项目结合,此时就可以添加数据库的相关依赖,方便我们在项目中直接调用数据库等与数据库相关的操作。
< dependencies ><!-- ⾥⾯放置项⽬的依赖坐标 , 可为多个 --></ dependencies >
< dependency >< groupId >mysql</ groupId >< artifactId >mysql-connector-java</ artifactId >< version >8.0.30</ version ></ dependency >

依赖传递:
还是回到最初的话题,我们为什么在创建项目的时候使用Maven,是因为Maven带给我们一些便利,如果我们手动的去添加管理依赖会出现一些难以避免的问题:
1.添加的依赖的版本对该项目是否能使用。
2.如果一个依赖中又依赖另外的依赖,那么此时对依赖的关联性考虑不全面。
3.如果两个或多个依赖同时又依赖同一个依赖,此时被依赖的对象的版本不一定同时适用于两个或多个依赖,此时就会造成依赖冲突!
但是如果此时引入Maven,它可以帮我们解决上述的几个问题:
如上图, 项⽬A 通过Maven 引⼊Jar A 时, 会⾃动引⼊ Jar B 和Jar C.Jar A 和项⽬B就是项⽬A的直接依赖.Jar B, Jar C是间接依赖.
依赖排除:
当我们项目变得越来越复杂时,此时如果项⽬A不需要Jar B,也可以通过排除依赖的⽅式来实现。
排除依赖:指主动断开依赖的资源。(被排除的资源⽆需指定版本)
Maven Help插件:
当项⽬⽐较复杂时, 我们就会有Jar包冲突的问题, 这时候就需要去解决依赖冲突. 解决冲突之前, 需要先找到冲突, 我们可以使⽤Maven Help插件来观察包和包之间的依赖关系。
(插件就是对程序的⼀些特定场景, 做出⼀些特定的功能的扩展)

安装之后, 打开pom⽂件, 可以看到Jar包之间的依赖关系:
Maven仓库:
为什么通过几行代码,xml格式的代码就可以将整个jar包引入呢?
Maven仓库分为两⼤类: 本地仓库 和 远程仓库 .其中远程仓库⼜分为 中央仓库, 私服 和其他公共库 !
本地仓库:
本地仓库: ⾃⼰计算机上的⼀个⽬录(⽤来存储jar包) 当项⽬中引⼊对应依赖jar包后,⾸先会查找本地仓库中是否有对应的jar包如果有,则在项⽬直接引⽤,如果没有,则去中央仓库中下载对应的jar包到本地仓库。


中央仓库:
中央仓库: maven 软件中内置⼀个远程仓库地址,就是中央仓库,服务于整个互联⽹. 由 Maven 团队维护,全球唯⼀.
1. 访问 https://mvnrepository.com/2. 进⾏查找, ⽐如mysql
选择添加jar包版本:
查看jar包坐标:
将坐标添加到pom.xml文件中:
私有服务器:
私服: ⼀般由公司团队搭建的私有仓库.

Maven设置国内源:
由于中央仓库在国外部署,下载起来会比较慢,所以咱们选择借助国内⼀些公开的远程仓库来下载资源接下来介绍如何设置国内源:
setting.xml文件放下面了,需要的自取:
通过网盘分享的文件:settings.xml
链接: https://pan.baidu.com/s/1VLZrlVgShTSwQQVMVcNyzg?pwd=8888 提取码: 8888
Maven 仓库默认在国外 https://mvnrepository.com/ , 国内使⽤时会⽐较慢,我们可以更换为阿⾥云的仓库也可以选择别的仓库, 参考: Maven 镜像地址⼤全打开settings.xml, 在 mirrors 节点上,添加内容如下:<mirror><id>aliyunmaven</id><mirrorOf>central</mirrorOf><name> 阿⾥云公共仓库 </name><url>http://maven.aliyun.com/nexus/content/groups/public/</url></mirror>以上分享的setting文件已经添加过了,可以直接使用!!
相关文章:
Spring框架基本使用(Maven详解)
前言: 当我们创建项目的时候,第一步少不了搭建环境的相关准备工作。 那么如果想让我们的项目做起来方便快捷,应该引入更多的管理工具,帮我们管理。 Maven的出现帮我们大大解决了管理的难题!! Maven…...
Hadoop一 HDFS分布式文件系统
一 分布式文件存储 了解为什么海量数据需要使用分布式存储技术 100T数据太大,单台服务器无法承担。于是: 分布式服务器集群 靠数量取胜,多台服务器组合,才能Hold住,如下 分布式不仅仅是解决了能存的问题ÿ…...
Windows 图形显示驱动开发-驱动驻留的供应和回收更改
访问非用户分配 对于 Windows 显示驱动程序模型 (WDDM) v2,有关 套餐 和 回收 的要求正在放宽。 用户模式驱动程序不再需要在内部分配上使用套餐和回收。 空闲/挂起的应用程序将使用 Microsoft DirectX 11.1 中引入的 TrimAPI 删除驱动程序内部资源。 API 级别将继…...
【含文档+PPT+源码】基于Python的图书推荐系统的设计与实现
课程简介: 本课程演示的是一款基于python的图书推荐系统的设计与实现,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的 Python学习者。 1.包含:项目源码、项目文档、数据库脚本、软件工具等所有资料 2.带你从零开始部署运行…...
glob 用法技巧
目录 处理大量文件节省内存 匹配多个文件扩展名 遍历多种格式文件 遍历某一个文件: 查找当前目录和子目录 6. 排除特定文件 7. 大小写不敏感匹配 8. 获取绝对路径 9. 处理特殊字符 处理大量文件节省内存 技巧:用 iglob 替代 glob,逐…...
Windows 启动 SSH 服务
Windows 启动 SSH 服务 一、OpenSSH Server 安装 以 Win10 系统为例 打开设置 -> 系统 -> 可选功能 在 添加的功能 查看是否安装了 OpenSSH 服务 或者 OpenSSH Server 如果没有安装,找到 系统->添加可选功能 -> 查看功能->搜索 OpenSSH 服务 ->…...
基于Llama 3.2-Vision的医学报告生成
记录运用大模型解决医学报告实例,仅介绍本地调用的情况。 前情提要 已安装 Python 显存不少于8G(8G设备上测试成功,其他环境可以自行测试)。 需要安装Ollama (Ollama 是一个允许在本地运行多模态模型的平台)。 方式1࿱…...
Freertos学习第一篇-总体概述
目录 1、基础概念1.1、FreeRTOS概念 2、模块学习2.1、任务2.2、调度(Scheduling)2.3、任务间通讯2.4、时间管理2.5、内存管理 3、各模块串联逻辑3.1、任务创建与调度3.2、任务间通讯3.3、时间管理3.4、内存管理 4、示例代码4.1、代码说明 5、学习路线建议…...
Windows系统安装GPU驱动/CUDA/cuDNN
1、驱动安装步骤 1.1下载驱动 通过浏览器访问Download The Official NVIDIA Drivers | NVIDIA 1.2安装驱动 1.3检查 打开【设备管理器】—【显示适配器】 2、CUDA安装步骤 2.1下载CUDA 官网链接CUDA Toolkit 12.4 Update 1 Downloads | NVIDIA 开发者 2.2安装CUDA 3、cuDN…...
Nginx 安装及配置教程(Windows)【安装】
文章目录 一、 Nginx 下载 1. 官网下载2. 其它渠道 二、 Nginx 安装三、 配置四、 验证五、 其它问题 1. 常用命令2. 跨域问题 软件 / 环境安装及配置目录 一、 Nginx 下载 1. 官网下载 安装地址:https://nginx.org/en/download.html 打开浏览器输入网址 htt…...
一只企鹅如何改变世界
一、历史的转折点:一只企鹅如何改变世界 1991年,芬兰大学生Linus Torvalds在邮件列表中写道:“我正在做一个自由的操作系统(只是爱好,不会像GNU那样庞大专业)”。这个后来被称为Linux内核的项目,与GNU项目的结合,点燃了开源运动的燎原之火。 关键演化: 1996年:Tux企…...
linux进程的内存空间映射(段)
Linux进程的内存空间映射 在 Linux 中,每个进程的内存空间是一个虚拟地址空间,操作系统通过内存映射机制(Memory Mapping)将不同的内存区域分配给不同类型的资源和需求。内存空间映射决定了进程如何访问不同类型的内存࿰…...
前端导出word文件,并包含导出Echarts图表等
基础导出模板 const html <html><head><style>body {font-family: Times New Roman;}h1 {text-align: center;}table {border-collapse: collapse;width: 100%;color: #1118FF;font-weight: 600;}th,td {border: 1px solid black;padding: 8px;text-align: …...
武汉火影数字|VR大空间内容制作:开启沉浸式体验新时代
近年来,随着VR技术的飞速发展,VR大空间制作逐渐成为行业的热门话题。它突破传统VR的空间限制,为用户带来了更加自由、沉浸的体验。无论是娱乐、教育还是工业领域,VR大空间制作都在悄然改变我们的生活和工作方式。 什么是VR大空间制…...
【拥抱AI】GPT Researcher的诞生
一、GPT Researcher 研究过程总结 GPT Researcher 是一个开源的自主智能体,旨在通过利用人工智能技术实现高效、全面且客观的在线研究。它通过一系列创新的设计和优化,解决了传统研究工具(如 AutoGPT)中存在的问题,如…...
Mac端homebrew安装配置
拷打了一下午o3-mini-high,不如这位博主的超强帖子,10分钟结束战斗 跟随该文章即可,2025/2/19亲测可行 mac 安装HomeBrew(100%成功)_mac安装homebrew-CSDN博客文章浏览阅读10w次,点赞258次,收藏837次。一直觉得自己写…...
第四篇:开源生态与蒸馏模型的价值
开篇:从单体模型到生态赋能 DeepSeek-R1 的发布不仅是一款推理模型的亮相,更是一个全新生态的起点。在前三篇中,我们剖析了 R1 的诞生背景、技术核心和性能实力,但它的意义远不止于此。2024 年末,DeepSeek 团队不仅开源了 R1-Zero 和 R1 的完整权重,还推出了基于 Qwen 和…...
C语言——深入理解指针(3)
文章目录 字符指针变量数组指针变量数组指针变量是什么?数组指针变量怎么初始化 二维数组传参的本质函数指针变量函数指针变量的创建函数指针变量的使用两段关于函数的有趣代码typedef关键字 函数指针数组转移表第一种写法:第二种写法(函数指…...
CentOS 7 企业级Redis 7部署指南
CentOS 7 企业级Redis 7部署指南 目录导航 一、环境准备 1.1 依赖管理 二、离线安装 2.1 源码编译安装2.2 目录结构规范 三、生产配置 3.1 主配置文件3.2 配置生成脚本 四、系统集成 4.1 Systemd服务文件4.2 服务管理命令 五、安全加固 5.1 网络安全配置5.2 审计配置 六、性能…...
Linux-C/C++《C++/1、C++基础》(C++语言特性、面向对象等)
这里主要介绍概念为主,主要介绍 C与 C 语言中常用的不同点,和一些新的变化。其中不会去说指针、数据类型、变量类型、判断和循环等这些知识,这些和C 语言基本是一样使用的。我们主要学习 C的面向对象编程,对学习 Qt 有很大的帮助。…...
Java-11
淘天集团2025届春季校园招聘在线笔试-研发 1。设有一个顺序共享栈storageArray[70],其中栈X的栈顶指针top1的初值为-1,栈Y的栈顶指针top2的初值为70,通过不断进行入栈操作,直到storageArray数组已满,此时top1 top2 …...
第4章 信息系统架构(四)
4.6 网络架构 网络是信息技术架构中的基础,不仅是用户请求和获取IT信息资源服务的通道,同时也是 信息系统架构中各类资源融合和调度的枢纽。特别是云计算、大数据和移动互联网技术飞速发 展的今天,网络更加成为实现这些技术跨越的重要环节。…...
用C++ Qt实现安卓电池充电动效 | 打造工业级电量控件
一、为什么需要自定义电池控件? 在工业控制、车机系统、智能硬件等领域的UI开发中,电池状态显示是高频出现的UI组件。通过实现一个支持颜色渐变、动态充电动画、警戒阈值提示的电池控件,开发者可以系统掌握以下核心能力: Qt绘图…...
【第二节】C++设计模式(创建型模式)-抽象工厂模式
目录 引言 一、抽象工厂模式概述 二、抽象工厂模式的应用 三、抽象工厂模式的适用场景 四、抽象工厂模式的优缺点 五、总结 引言 抽象工厂设计模式是一种创建型设计模式,旨在解决一系列相互依赖对象的创建问题。它与工厂方法模式密切相关,但在应用…...
自用题库---面试使用
1、css中如何实现水平垂直居中 方法一:flex: display: flex; justify-content: center; align-item: center;方法二:绝对定位margin:auto: position: absolute; left: 0; right: 0; top: 0; bottom: 0; margin:auto;方法三:已…...
【Mysql】我在广州学Mysql 系列—— 有关日志管理的示例
ℹ️大家好,我是练小杰,今天星期四了,明天周五,美好的周末又要到了!!😆 本文是对MySQL日志管理内容进行练习,后续将添加更多相关知识噢,谢谢各位的支持🙏 复习…...
dify如何升级到0.15.3(目前最新版本)
Docker Compose 部署 警告 docker-legacy 目录中的文件将很快停止维护,并将从存储库中删除。如果您仍在使用它们,请尽快切换到新版本。 备份自定义的 docker-compose YAML 文件(可选) cd docker cp docker-compose.yaml docker-c…...
UNIAPP开发之利用阿里RTC服务实现音视频通话后端THINKPHP5
下面是一个使用ThinkPHP 5实现后端逻辑的示例。我们将创建一个简单的ThinkPHP 5项目来处理生成推流和播流地址的请求。 后端部分(ThinkPHP 5) 1. 初始化ThinkPHP 5项目 首先,确保你已经安装了Composer。然后使用Composer创建一个新的Think…...
使用JWT实现微服务鉴权
目录 一、微服务鉴权 1、思路分析 2、系统微服务签发token 3、网关过滤器验证token 4、测试鉴权功能 前言: 随着微服务架构的广泛应用,服务间的鉴权与安全通信成为系统设计的核心挑战之一。传统的集中式会话管理在分布式场景下面临性能瓶颈和扩展性…...
基于WOA鲸鱼优化的WSN网络最优节点部署算法matlab仿真
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 鲸鱼优化算法(WOA)是一种模拟座头鲸捕食行为的元启发式优化算法。其主要原理基于座头鲸独特的 “气泡网” 捕食策略,通过数学模…...
TikTok账户安全指南:如何取消两步验证?
TikTok账户安全指南:如何取消两步验证? 在这个数字化的时代,保护我们的在线账户安全变得尤为重要。TikTok,作为全球流行的社交媒体平台,其账户安全更是不容忽视。两步验证作为一种增强账户安全性的措施,虽…...
将 Type Code 替换为 State/Strategy 模式
Replace Type Code with State/Strategy 要将 Type Code 替换为 State/Strategy 模式,你的目的是通过将行为分离到独立的类中来消除使用类型代码(如整数、字符串或枚举类型)来决定行为的需要。这种做法能够让系统变得更加灵活和易于维护。 …...
c#爬取数据并解析json
安装 Newtonsoft.Json Install-Package Newtonsoft.Json代码 HttpClient client new HttpClient();// 获取网页内容HttpResponseMessage response client.GetAsync("https://opentdb.com/api.php?amount10&category18&difficultyeasy&typemultiple"…...
Spring Boot 内置工具类
ObjectUtils // 获取对象的类名。参数为 null 时,返回字符串:"null" String nullSafeClassName(Object obj) // 参数为 null 时,返回 0 int nullSafeHashCode(Object object) // 参数为 null 时,返回字符串࿱…...
蓝桥杯15 填空题
1.握手问题: 思路:首先当所有人都握过手,由于一次握手相当于两个人都握手过,所以容易发现这是一个组合问题,为(50*49)/2,而其中有7个人没有相互握过手,那么减去ÿ…...
分布式光纤声波振动技术在钻井泄漏检测中的应用
在石油天然气的钻井作业中,及时发现并定位泄漏点对于保障开采安全、降低环境污染以及避免经济损失至关重要。传统的泄漏检测方法往往存在局限性,而分布式光纤声波振动技术凭借其独特的优势,正逐渐成为钻井过程中寻找泄漏的有力工具。 技术原理…...
0081.基于springboot+uni-app的垃圾分类小程序+论文
一、系统说明 基于springbootuni-app的垃圾分类小程序,系统功能齐全, 代码简洁易懂,适合小白学编程。 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本…...
基于STM32+ESP8266+手机 APP+阿里云的智能小车设计与实现(系统资料)
基于STM32+ESP8266+手机APP+阿里云的智能小车设计与实现 摘要:本研究旨在设计一款高度智能化的智能小车系统,通过集成 STM32 微控制器、ESP8266 无线模块、手机 APP 以及阿里云平台,实现环境数据实时采集、远程精准控制和高效的数据交互。详细阐述系统各部分的设计原理、实…...
分布式 IO 模块:水力发电设备高效控制的关键
在能源领域不断追求高效与可持续发展的今天,水力发电作为一种清洁、可再生的能源形式,备受关注。而要实现水力发电设备的高效运行,精准的控制技术至关重要。分布式 IO 模块,正悄然成为水力发电设备高效控制的核心力量。 传统挑战 …...
Spring Boot +SQL项目优化策略,GraphQL和SQL 区别,Spring JDBC 等原理辨析(万字长文+代码)
WebFlux 定义:Spring 5引入的响应式Web框架,基于Reactor库实现非阻塞、异步编程模型。通常用途:构建实时通信、流数据处理等高并发场景。使用异步事件驱动模型,单线程可处理数千并发连接。用途:处理高并发网络请求&am…...
QSNCTF-WEB做题记录
第一题,文章管理系统 来自 <天狩CTF竞赛平台> 描述:这是我们的文章管理系统,快来看看有什么漏洞可以拿到FLAG吧?注意:可能有个假FLAG哦 1,首先观察题目网站的结构和特征 这个一个文件管理系统&#x…...
使用Dify将AI机器人嵌入到你的前端页面中及chrome的扩展应用
目录 1 博主有话说2 前提环境3 Dify创建个聊天助手应用4 将AI聊天机器人嵌入到html中5 将AI聊天机器人设置为chrome的扩展应用6 博主增语 1 博主有话说 那博主话不多说,先展示一下成果! 这个界面是使用dify配置的一个“聊天助手”的应用,助…...
接口测试-API测试中常用的协议(下)
一、RPC RPC(Remote Procedure Call)即远程过程调用协议,它允许程序调用位于其他计算机上的程序中的过程或函数,就像调用本地程序中的过程一样。下面从其概念、工作原理、特点、应用场景等方面详细介绍: 概念起源与核…...
【git】提交修改、回撤、回滚、Tag 操作讲解,与reset (--soft、--mixed、--hard) 的区别
Git 提交修改、回撤、回滚、Tag 操作详解 1. git commit --amend -m "message" 作用:修改最近一次提交的信息或内容。 适用场景: 提交后发现 commit message 写错了。提交后发现 少 add 了文件,想直接加进上一次提交。 示例 1&…...
【设计模式】【创建型模式】抽象工厂模式(Abstract Factory)
👋hi,我不是一名外包公司的员工,也不会偷吃茶水间的零食,我的梦想是能写高端CRUD 🔥 2025本人正在沉淀中… 博客更新速度 👍 欢迎点赞、收藏、关注,跟上我的更新节奏 🎵 当你的天空突…...
Embedding模型介绍部署部署
概述 是一种将高维数据(如文本、图像、音频)映射到低维空间的技术,其中每个数据点由实数构成的向量表示,这些向量在向量空间中的位置反映了数据的语义特征。这种技术广泛应用于自然语言处理和机器学习中,使得计…...
web网络安全:跨站脚本攻击(XSS)
跨站脚本攻击(XSS)概述 跨站脚本攻击(XSS,Cross-Site Scripting) 是一种常见的 Web 安全漏洞,攻击者通过向受信任的网站注入恶意脚本(通常是 JavaScript),诱使其他用户在…...
【C++】 Flow of Control
《C程序设计基础教程》——刘厚泉,李政伟,二零一三年九月版,学习笔记 文章目录 1、选择结构1.1、if 语句1.2、嵌套的 if 语句1.3、条件运算符 ?:1.4、switch 语句 2、循环结构2.1、while 语句2.2、do-while 语句2.3、 for 循环2.4、循环嵌套…...
Kafka中commitAsync的使用与实例解析
在使用Apache Kafka进行消息处理时,正确管理偏移量(offset)是确保数据一致性和可靠性的重要环节。Kafka提供了多种方式来提交偏移量,其中commitAsync()方法是一种高效且灵活的选择。本文将通过一个完整的实例,详细介绍…...
上海餐饮冷藏配送全方案 一站式服务助企提速发展
在上海这座国际化大都市中,餐饮行业以其繁荣与多元著称。消费者对食品安全和品质要求的日益提高,餐饮冷链运输成为了保障餐饮供应链稳定、高效的关键环节。近日,华鼎冷链科技凭借其创新的一站式服务方案,在上海餐饮冷链领域脱颖而…...