EE进阶1:Maven和SpringBoot基本介绍

Maven

什么是maven

Maven简单的理解就是一个项目管理工具,使用pom.xml文件进行管理和获取.jar包,而不用手动进行添加.jar包。

创建maven项目以及使用

Maven的功能非常多,这里主要理解Maven的项目创建和依赖管理。

项目创建:

maven本身是一个独立的软件,但是idea本身就将Maven集成于自身,所以我们无需安装,只要在idea的项目创建时选择Maven选项即可。

Maven提供了跨平台的自动化项目构建,在我们开发一个项目后需要进行编译,测试,打包等流程,但是当我们修改了之后就要重新进行上述流程,Maven就提供了一些标准化的简单命令来完成上面的流程。

以Maven中的package命令而言,这个命令可以直接将当前的项目进行打包,我们就会得到的当前项目的包.jar包,打包时同时也会将package上面的命令一起执行。

依赖管理

上面的Maven通过pom.xml进行获取.jar包,而不用手动添加,其实就是依赖。

例如在JDBC中我们要手动添加.jar包到项目中,但是在Maven中我们就只需要在pom.xml文件中添加mysql-connector-java的依赖就行了,在<dependencies>中添加依赖的坐标就可以将这个包引入项目中了,同时刷新之后就会看到我们导入的.jar包了。

依赖传递

包和包之间也有依赖性,例如A包要依赖B包,B依赖C,如果不使用Maven时,此时就需要进行手动添加这三个包,但是使用Maven就可以解决这个问题,maven会根据包间的依赖性,将所依赖的包都添加到项目中,减少项目导包时出现的错误。

依赖排除

当A包依赖B1包,C包依赖B2包,B1和B2是相同的包只是包的版本不同,此时Maven就会根据路径优先的方式,看看那个版本到达的路径更短,来进行选择。这样的方式就是依赖排除。

maven导入包的方式

通过几行代码,就可以将包导入到项目中,Maven是通过到中央仓库中寻找的。

这几行代码,我们称之为坐标,我们可以通过引入坐标,Maven就会到“仓库”中去寻找对应的.jar包,下载到我们的项目中。

本地仓库和远程仓库

本地仓库其实通俗的讲就是我们电脑上的一个目录,引入坐标后Maven就会去本地仓库中寻找对应的.jar包,当没有时就会去远程仓库中寻找。

远程仓库

远程仓库中包含了:中央仓库,私人仓库,公共源。

中央仓库是maven中内置的一个仓库,全球统一唯一,我们引入地址在本地仓库没有的情况下就会去这上面进行查找。

公共源是国内的一些公司将Maven仓库镜像,因为Maven仓库一般在国外,访问速度较慢,所以我们可以把Maven的默认的仓库,修改为国内源。

SpringBoot

对于官方的说法,spring可以让Java开发变得更加简单快速,spring官方推出了很多项目,但是这些项目存在配置多,上手难的问题,于是spring就推出了SpringBoot,它是为了简化Spring开发的。

当我们创建了SpringBoot项目之时,springboot是集成了maven的,要选择maven进行创建,这样在项目加载时会引进我们开发springboot的所需要的包。

父工程

在pom文件中的测试单元常见的依赖,它没有指定版本号,但是我们在本地仓库中也是能找到,这是因为每个SpringBoot中有一个父工程,依赖的版本号都在它那里保存,⽗⼯程指定版本号后, 就会⾃动引⼊和所指定版本对应的依赖, 创建的SpringBoot项⽬, 会继承SpringBoot⽗⼯程。

SpringBoot项目目录

src/main/java: Java 源代码

src/main/resources: 为静态资源或配置⽂件

src/test/java: 测试代码源代码

target: 编译后的⽂件路径

pom.xml: maven 配置⽂件

使用SpringBoot进行与浏览器进行交互

在浏览器中输入http://127.0.0.1:8080/nihao/hello,这样就可以访问到我们写的后端服务器了。

Web服务器

Web 服务器就是对HTTP协议进⾏封装, 程序员不需要直接对协议进⾏操作(⾃⼰写代码去解析http协议 规则),让Web开发更加便捷。
SpringBoot 内置了Tomcat服务器, ⽆需配置即可直接运⾏,Tocmat默认端⼝号是8080, 所以我们程序访问时的端⼝号也是8080。

请求响应分析

浏览器输⼊URL之后, 发起请求, 就和服务器之间建⽴了连接。

浏览器:

1)通过IP地址127.0.0.1定位到⽹络上的⼀台计算机, 127.0.0.1就是本机
2)通过端⼝号8080找到计算机上对应的进程 , 也就是在本地计算机中找到正在运⾏的8080端⼝的
程序
3)/user/sayhi是请求资源位置
服务器:
1)接收到浏览器发送的信息(如:/user/sayhi)
2)在服务器上找到/user/sayhi的资源
3)把资源发送给浏览器

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

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

相关文章

【系统架构设计(三)】系统工程与信息系统基础下:企业信息化与电子商务-数字化转型的核心驱动力

文章目录一、信息化的基本概念1、 信息化的定义与目的2、 信息化涉及的三大创新3、信息化需求的三个层次二、企业信息化六大方法体系三、信息系统战略规划方法1、 战略规划方法的演进2、 关键成功因素法&#xff08;CSF&#xff09;3、 战略集合转化法&#xff08;SST&#xff…

分布式2PC理论

目录 什么是分布式 2PC&#xff08;Two-Phase Commit&#xff09; 2PC 的工作原理 2PC 的优缺点 为什么 2PC 不完全可靠&#xff1f; 超时问题 协调者故障 什么是分布式 2PC&#xff08;Two-Phase Commit&#xff09; 定义 2PC 是一种原子提交协议&#xff0c;用…

【原创】PDF一键导出图片多张图片一键合成PDF

一、界面功能介绍&#xff1a;PDF输出图片和图片合成PDF二合一 开发动力&#xff1a;WPS有此功能需要VIP收费&#xff0c;其他小软件不能满足我的要求 依赖&#xff1a;友好界面组件&#xff0c;pdf输出图片组件&#xff0c;合并组件 NET8.0&#xff08;NetCore.Winform&#x…

卷积神经网络项目:基于CNN实现心律失常(ECG)的小颗粒度分类系统

卷积神经网络项目实现文档 1、项目简介 1.1 项目名称 ​ 基于CNN实现心律失常&#xff08;ECG&#xff09;的小颗粒度分类系统 1.2 项目简介 ​ 心律失常是临床上常见且潜在致命的心血管疾病之一&#xff0c;包括房性早搏&#xff08;PAC&#xff09;、室性早搏&#xff0…

Linux(1)|入门的开始:Linux基本指令

一、浅谈操作系统1、操作系统是什么&#xff1f;操作系统是一款做软硬件管理的软件我们可以发现除了上面的应用软件&#xff0c;操作系统、设备驱动和硬件都是为软硬件服务的&#xff0c;为了满足用户的不同需求&#xff0c;在操作系统之上需要有各种不同的应用软件。2、一个好…

基于STM32单片机的OneNet物联网云平台农业土壤湿度控制系统

1 系统功能介绍 本设计为 基于STM32单片机的OneNet物联网云平台农业土壤湿度控制系统。系统以STM32F103C8T6单片机作为核心控制器&#xff0c;结合土壤湿度传感器、OLED液晶显示模块、WiFi模块、继电器驱动电路以及按键电路&#xff0c;实现了土壤湿度的实时采集、显示与远程控…

GooglePlay提审问题记录

1、debug签名问题 原因&#xff1a; 为应用签名 | Android Studio | Android Developers 从 IDE 中运行或调试您的项目时&#xff0c;Android Studio 会自动使用由 Android SDK 工具生成的调试证书为您的应用签名。当您首次在 Android Studio 中运行或调试项目时&#xff…

使用Rag 命中用户feedback提升triage agent 准确率

简述使用 RAG&#xff08;Retrieval-Augmented Generation&#xff09;&#xff0c;提升 Triage Agent 对用户反馈的处理准确率。这个方案的背景源于当前系统服务多个租户&#xff0c;各租户在业务场景、问题描述方式、术语使用习惯等方面存在极大差异&#xff0c;导致通用模型…

项目管理方法论有哪些流派

项目管理方法论的主要流派包括&#xff1a;瀑布式方法论、敏捷方法论、Scrum方法论、看板方法论、关键路径法&#xff08;CPM&#xff09;、计划评审技术&#xff08;PERT&#xff09;、挣值管理&#xff08;EVM&#xff09;、精益项目管理、六西格玛、PRINCE2方法论。瀑布式方…

Python远程文件管理高并发处理与负载均衡实战

《Python远程文件管理高并发处理与负载均衡实战》 引言 在5G网络和物联网时代,单台服务器每秒处理上万并发请求已成为基本要求。本文基于Python异步编程框架和分布式架构,深入探讨如何构建支持10万+并发连接的远程文件管理系统。通过实战案例演示,系统在某省级政务云平台实…

第十七章 Java基础-常用API-System

文章目录 package zsk.第十三章常用API.a02system;public

uniapp开发 移动端使用字符串替换注意事项

1. uniapp开发 移动端使用replace注意事项uniapp replaceAll方式在手机失效是因为安卓环境下不支持replaceAll方法。在uniapp开发中&#xff0c;如果在安卓环境下使用replaceAll方法&#xff0c;可能会导致页面无法渲染&#xff0c;并且控制台不会反馈错误信息。为了解决这个问…

【动态规划 矩阵快速幂】P10528 [XJTUPC 2024] 崩坏:星穹铁道|普及+

本文涉及知识点 C动态规划 【矩阵快速幂】封装类及测试用例及样例 P10528 [XJTUPC 2024] 崩坏&#xff1a;星穹铁道 题目背景 Corycle 喜欢玩一个由米哈游自主研发的一款回合制战斗游戏------《崩坏&#xff1a;星穹铁道》。这片银河中有名为「星神」的存在&#xff0c;他们…

捡捡java——2、基础07

Maven项目管理工具 maven项目->本地仓库->判断配置文件->没指定->远程仓库-》本地仓库 ->指定了->镜像仓库-》本地仓库 GroupId&#xff1a;一般是逆向公司域名 ArtifactId&#xff1a;一般是项目jar名 Version&#xff1a;版本号 maven目录里面conf&…

蜂窝通信模组OpenCPU的介绍

一、名词解释 OpenCPU 方案在软件功能上&#xff0c;需要将原来在 MCU 上运行的固件功能&#xff0c;放在 Cat.1 模组的 SoC 芯片上运行。同时&#xff0c;原来通过串口协议交互完成的功能&#xff0c;也变成通过 OpenAPI 调用的方式来完成。软件开发、编译及烧录方面&#xff…

沃丰科技出海客服系统对接沃尔玛全球电商平台,赋能中企出海

经济全球化的当下&#xff0c;中国企业出海步伐不断加快&#xff0c;沃尔玛全球电商平台作为全球极具影响力的零售渠道&#xff0c;成为众多中企开拓国际市场的重要选择。然而&#xff0c;跨境服务的复杂性、多语言沟通障碍、文化差异以及各行业的独特需求&#xff0c;始终是中…

Spring Boot 整合 SSE, http长连接

1. 什么是 SSE&#xff1f; (30秒)SSE (Server-Sent Events) 是一种允许服务器通过 HTTP 连接主动向客户端发送实时更新的技术。特点&#xff1a;基于 HTTP&#xff0c;使用简单&#xff0c;单向通信&#xff08;服务器 -> 客户端&#xff09;&#xff0c;自动重连。对比 We…

类和反射的机制

一、类1.类的生命周期1. 类的编译&#xff1a;通过 javac 命令将 .java 源文件编译成 .class 字节码文件。 2. 类的加载&#xff1a;类加载器&#xff08;ClassLoader&#xff09;将 .class 文件从硬盘加载到内存&#xff0c;形成“类对象”&#xff0c;包括加载、链接、初始化…

【论文笔记】VGGT-从2D感知3D:pose估计+稠密重建+点跟踪

VGG组联合Meta改进了dust3r&#xff0c;输入图片&#xff0c;输出对应的一系列3D属性&#xff0c;被CVPR2025收录&#xff01;1.abstract我们提出了VGGT&#xff0c;一种前馈神经网络&#xff0c;能够直接从场景的一个、几个或数百个视角推断出所有关键的3D属性&#xff0c;包括…

idea2025.2中maven编译中文乱码

问题描述&#xff1a;使用idea2025.2编译器中maven编译java文件后中文出现乱码情况解决方案&#xff1a;添加指令&#xff1a; JAVA_TOOL_OPTIONS-Dfile.encodingUTF-8 在下图位置注意&#xff1a;再次编译时&#xff0c;可以在原本文件中小范围修改一点内容&#xff08;打个…