Maven和Springboot初识

(一)Maven

  Maven是一个项目管理工具,通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具

(可以通过pom.xml文件的配置来获取jar包,而不用手动添加)

  Maven可以提高我们的开发效率减少bug,它可以帮助我们构建项目并且进行依赖管理

  

1.项目构建

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

2.依赖管理

我们可以通过pom.xml文件的配置获取jar包,不需要手动添加jar包获取的jar包就是依赖

   依赖传递:

    起初我们没有maven时,需要手动向项目中添加依赖的jar包,但是这个过程可能会涉及到依赖的传递,⽐如A依赖B,B依赖C,那么A项⽬引⼊B的同时,也需要引⼊C,如果我们⼿动管理这个依赖,这个过程 就会⽐较⿇烦,我们需要知道每个库都依赖哪些库,以及这些依赖之间的版本是如何关联的

   但是如果我们使用maven就可以避免管理所用的依赖管理,我们只需要再pom中直接写入依赖,maven就会把他依赖的jar包自动写入。

如图,如果我们引入jarA就会自动帮我们引入jarB和jarC

依赖排除:

 那如果上述项目中不需要jarB了,也可以通过排除依赖的方式实现

3.Maven仓库

<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.30</version>
</dependency>

  这个代码,我们称为坐标,是唯一的,通过groupId、artifactId、version的配置我们来确定一个唯一的jar包,在我们在pom文件配置完依赖后,点击刷新,我们会根据坐标配置,并从仓库寻找jar包,那这个jar包下载的地方就叫做仓库,上述代码就是仓库的坐标

Maven仓库分为两大类:本地仓库和远程仓库,远程仓库又分为中央仓库,私服和其他公共库,上述就是中央仓库的截图。

本地仓库:自己计算机中储存jar包的一个目录

   在我们项目中引入对应jar包后,我们会先从本地仓库寻找,如果有,就直接引用,如果没有,我们再从中央仓库中下载对应的jar包到本地仓库,再通过本地仓库进行引用

我们

我们可以在这里更改本地仓库的地址

中央仓库:Maven软件中内置的远程仓库地址

  https://mvnrepository.com/这就是我们maven的中央仓库

我们也可以将自己的jar包分享到中央仓库(需要审核)

私服:一般由公司搭建的私有仓库

私服一般需要一定的权限,当我们引入私服后,我们Maven依赖的下载顺序又会发生变化

  我们会再本地仓库寻找后,找不到后会先从私服中寻找,如果私服中没有,再去中央仓库寻找,中央仓库寻找到后,我们会先缓存到私服上,再缓存到本地仓库中

(二)SpringBoot

 1.spring

    简单说就是一个java框架,可以使我们的程序更加快速,简单,安全Spring官⽅提供了很多开源的项⽬,覆盖范围从Web开发到⼤数据,Spring发展到了今天,已经形成了⾃⼰的⽣态圈.我们在开发时,也倾向于使⽤Spring官⽅提供的技术,来解决对应的问题.

2.springboot

springboot就是spring的脚手架帮我们更加快速的搭建spring框架

3.springboot项目创建

    

我们在这里勾选了spring web这里面包含了web应用开发所需要的常见依赖

我们来看下创建好之后的目录

1.src/main/java:这里面通常放我们的源代码

2.src/main/resource:这里为静态资源或者配置文件

3.src/test/java:这里面为测试的源代码

4.target:编译后的文件路径

5.pom.xml:maven的配置文件

这样就代表我们启动成功了

4.输出“hello word”

又到了我们喜闻乐见的环节了

@RestController
public class RestCtrolloer {@RequestMapping("/HELLO")public String say(){return "hello word";}
}

   之前我们学习了http协议,知道了HTTP协议就是http客户端和服务器之间交互数据的格式,web都武器就是对http协议进行封装,让web开发更加迅速,常见的有Apache,Nginx,IIS,Tomcat,Jboss等

我们springboot内置了Tomcat服务器,不用配置就可以直接运行(Tomcat的默认端口号为8080)

   那上述代码中的@RequestMapping(“/HELLO”)就对应了我们url中/后面的路径,也就是请求资源的位置  ,具体操作会在下一篇博客中详细说明

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

深度学习自编码器 - 使用自编码器学习流形篇

序言 在数据科学的浩瀚宇宙中&#xff0c;深度学习如同一颗璀璨的星辰&#xff0c;引领着我们对复杂数据内在规律的探索。其中&#xff0c;自编码器作为深度学习家族中的一位独特成员&#xff0c;以其非凡的能力——通过无监督学习捕捉数据的有效表示&#xff0c;而备受瞩目。…

从数据仓库到数据飞轮:数据技术演进的探索与思考

引言 在当今的数字化浪潮中&#xff0c;数据被视为一种极具价值的资源&#xff0c;类似于传统工业时代的石油&#xff0c;它为企业挖掘出深邃的洞察力&#xff0c;并成为决策过程中不可或缺的基石。随着技术的不断演进&#xff0c;数据管理的策略与架构也经历了显著的变革&…

Linux C高级 day1

1、 2、ubuntu中桥网络桥接模式配置流程&#xff1a; 首相需保证虚拟机提供了《桥接模式》 从菜单栏打开“虚拟机”选项卡下的“设置” &#xff0c;如图设置虚拟机网络连接模式 此处无需勾选“复制物理网络连接状态” 而后 从菜单栏选择“编辑”下的“虚拟网络编辑器” &a…

leetcode75-9 压缩字符串 双指针原地算

题目太复杂了 没做出来 计算过程大概是双指针处理数组&#xff0c; 其中两个知识点一个是length 字符数组直接加 不用加括号 还有就是数字转字符需要转换 数字转换成字符 不能直接转换&#xff01; 需借助数字转字符串&#xff0c; 首先将数字转为字符串&#xff0c;…

徒增成本,还是有备无患?说说4G模组SIM双卡切换

初学开发的小伙伴提出疑问&#xff1a; 手机双卡可以理解&#xff0c;人情世故各种缘由…… 物联网设备有必要双卡吗&#xff0c;会不会太浪费&#xff1f; 实际应用中&#xff0c;双卡可不是徒增成本的摆设&#xff0c;而是有备无患的必需。 在使用4G模组双卡功能的场景下&a…

掌握MySQL性能监控 · performance_schema 使用快速入门

performance_schema 使用快速入门 在数据库性能调优的过程中&#xff0c;performance_schema 是一个非常有用的工具&#xff0c;它可以帮助我们深入分析 MySQL 内部的性能表现。通过合理使用 performance_schema&#xff0c;我们可以发现数据库中的性能瓶颈并做出优化。本文将…

STM32快速复习(十二)FLASH闪存的读写

文章目录 一、FLASH是什么&#xff1f;FLASH的结构&#xff1f;二、使用步骤1.标准库函数2.示例函数 总结 一、FLASH是什么&#xff1f;FLASH的结构&#xff1f; 1、FLASH简介 &#xff08;1&#xff09;STM32F1系列的FLASH包含程序存储器、系统存储器和选项字节三个部分&…

XML映射器-动态sql

01-动态sql 1.实现动态条件SQL 第一种方法在sql语句中加入where 11其他条件都加and就行,这样就可以根据if条件来判断要传递的参数可以有几个 第二种方法用where标签给if语句包起来 where标签的作用如下图 第三种方法用trim标签解释如下图 用choose也可以实现条件查询如下图,…

pycharm连接远程linux服务器上的docker进行深度学习训练

实习过程中由于GPU都在服务器上&#xff0c;编辑代码很麻烦。并且服务器上配置了docker的环境&#xff0c;所以用pycharm连接远程服务器的docker进行深度学习&#xff0c;这样在本地调用远程服务器的GPU和环境&#xff0c;更方便一点&#xff0c;将这个过程记录下来&#xff0c…

高效开发,从暗藏玄机的文件系统开始—合宙Air201资产定位模组LuatOS

超低功耗、精准定位、快速量产——迷你小巧的合宙Air201&#xff0c;正给越来越多的行业客户带来高效开发体验。 4G-Cat.1模组的文件系统关乎数据传输速度、存储效率&#xff0c;以及数据安全性等等诸多因素&#xff0c;在应用开发中极为重要。 本期&#xff0c;我们来学习合…

QT 带箭头的控件QPolygon

由于对当前项目需要绘制一个箭头控件&#xff0c;所以使用了QPainter和QPolygon来进行绘制&#xff0c;原理就是计算填充&#xff0c;下面贴出代码和效果图 这里简单介绍下QPolygon QPolygon是继承自 QVector<QPoint>那么可以很简单的理解为&#xff0c;他就是一个点的…

比特币10年价格数据(2014-2024)分析(进阶2_时间序列分析)

数据入口&#xff1a;【每周挑战】比特币10年价格数据可视化和量化分析 - Heywhale.com 本数据集包含 2014 - 2024 的比特币美元价格数据&#xff0c;具体包含比特币每日的开盘价、最高价、最低价、收盘价以及成交量等关键信息。数据说明如下&#xff1a; 字段说明Date日期&a…

MES管理系统在智能制造中的重要应用

在智能制造的浪潮席卷之下&#xff0c;MES管理系统犹如一位精通生产艺术的智者&#xff0c;以其独到的洞察力和卓越的能力&#xff0c;引领着制造业向更加智能化、高效化的未来迈进。它不仅仅是一个数据汇聚的容器&#xff0c;更是信息处理的引擎、决策制定的伙伴&#xff0c;以…

游戏开发引擎__游戏场景(灯光,摄像机)

1.灯光 重要参数介绍 类型: 控制灯光的类型&#xff0c;有“定向”“点”“区域”和“聚光”4种模式。颜色: 控制灯光的颜色。模式: 控制灯光的光照模式&#xff0c;有“实时”“混合”和“烘焙”3种模式。强度: 控制灯光的明亮程度。间接乘数: 改变间接光的强度。阴影类型: …

亚信电子于IAS 2024展出最新IO-Link主站设备软件协议栈解决方案

亚信电子即将于IAS 2024展示最新的亚信IO-Link主站/设备软件协议栈、集成亚信IO-Link主站软件协议栈的AX58400 EtherCAT转IO-Link网关&#xff0c;以及AXM57104A TSN PCIe千兆以太网卡解决方案。 [台湾新竹讯, 2024年9月18日] 亚信电子&#xff08;ASIX Electronics Corporat…

Golang | Leetcode Golang题解之第415题字符串相加

题目&#xff1a; 题解&#xff1a; func addStrings(num1 string, num2 string) string {add : 0ans : ""for i, j : len(num1) - 1, len(num2) - 1; i > 0 || j > 0 || add ! 0; i, j i - 1, j - 1 {var x, y intif i > 0 {x int(num1[i] - 0)}if j &g…

二叉树的层序遍历(含十道leetcode相关题目)

文章目录 二叉树层序遍历模板102. 二叉树的层序遍历 二叉树层序遍历模板 我们之前讲过了关于二叉树的深度优先遍历的文章&#xff1a;前中后序遍历的递归法和迭代法。 接下来我们再来介绍二叉树的另一种遍历方式&#xff1a;层序遍历。 层序遍历一个二叉树。就是从左到右一层…

1.1 软件测试 + AI

欢迎大家订阅【软件测试】学习专栏&#xff0c;开启你的软件测试学习之旅&#xff01; 文章目录 前言一、软件测试二、人工智能的引入 前言 人工智能的引入为软件测试带来了巨大的变革&#xff0c;不仅提升了测试效率和准确性&#xff0c;也为软件质量的保障提供了新的手段。通…

微信小程序开发自带的自定义Navigation-bar避坑

最近新开了一个小程序项目&#xff0c;用了新版本的微信小程序开发工具。在模拟器上开发一直都很顺利&#xff0c;开发完成之后&#xff0c;要上到真机上进行测试&#xff0c;发现在华为的鸿蒙上&#xff0c;样式有点不对了。 居然NavigationBar被遮住了一半&#xff0c;发现在…

Spark-ShuffleWriter-UnsafeShuffleWriter-钨丝内存分配

一、上下文 《Spark-ShuffleWriter-UnsafeShuffleWriter》中提到在进行Page内存分配时&#xff0c;调用了一行代码 MemoryBlock page memoryManager.tungstenMemoryAllocator().allocate(acquired); 这里就会走MemoryManager的钨丝内存分配&#xff0c;下面我们来详细看下 …