JavaEE-SpringBoot快速入门

文章目录

  • 本节目标
  • Maven
    • 什么是Maven
    • 创建一个Maven项目
    • maven项目功能
    • maven的依赖管理
    • 全球仓库, 私服, 本地服务器, 配置国内镜像
  • 第一个SpringBoot项目
    • 创建项目
    • 运行SpringBoot程序
  • SpringBoot原理初步
    • Web服务器
  • 总结

本节目标

  • 了解什么是maven, 配置国内源
  • 使用Springboot创建项目

关于环境准备, 由于社区版的限制过多, 所以建议直接上专业版, 因为专业版是收费的, 所以你可以采用一些 “科技” 手段来绕开…, 我们下面提供一些途径
教程链接


Maven

什么是Maven

maven就是一个项目管理工具, 基于POM(Project Object Model, 项目对象模型)的概念, 通过一小段信息的描述, 来进行项目的管理与创建

简单点说就是Maven是一个项目管理工具, 通过POM.xml配置文件添加jar包(也就是添加依赖), 而不是手动的添加jar包, 其实我们在JDBC的那一篇章也学习过Maven, 我们这里只是做一个简单的复习


创建一个Maven项目

早期的时候, 我们需要手动的添加Maven, 但是现在, idea已经自动包含了Maven, 所以不需要我们程序员进行手动的添加

下面是创建maven项目的流程
在这里插入图片描述
在这里插入图片描述
我们创建的Maven项目中, 都会包含一个pom.xml, 这其实就是添加依赖的配置文件

maven项目功能

打开maven项目的管理列表

在这里插入图片描述
Lifecycle表示这个项目的生命周期, 其中有多条指令

  • clean: 清理所有的target标签下的文件
  • compile: 编译当前的Java文件]
  • package: 把这个maven项目打包为一个jar文件

当执行package打包功能的时候, 会把上面的所有指令全部执行一遍…

在这里插入图片描述

会发现, 打包之后的jar文件存在target目录下面

在这里插入图片描述
上面是日志的信息, 里面也存在jar包的内容


maven的依赖管理

我们maven的核心就是通过管理pom.xml中的依赖来管理项目
我们依赖的查询可以直接在全球仓库(全球唯一)上面查, 也可以在一些辅助平台上面查, 但是这两种平台可能会存在"时差", 也就是全球仓库发布, 但是辅助平台没有发布的情况

全球仓库: 全球仓库链接
辅助平台链接: 辅助平台链接

简单介绍一下依赖(拿mysql为例)

查找依赖(全球仓库)
在这里插入图片描述
分级查询即可

查找依赖(辅助平台)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
通过这种方式直接查出来依赖的内容, 稍后我们会在pom.xml中进行依赖的导入

在这里插入图片描述
下面的<dependency>标签中的内容就是导入的依赖信息
关于标签的几个属性, 我们简单介绍一下

  • groupId: 组织名称(一般都是某某公司)
  • artifactId: 项目名称(就是开发的某某项目)
  • version: 代表该项目的版本信息(大, 中, 小 三个版本)

在这里插入图片描述

查看上面的这个文件下的内容, 会发现, 我们不仅仅导入了MySQL这个依赖, 还导入了protobuf这个依赖(除开内置的JDK17), 这是怎么回事呢
实际上, 我们在导入mysql依赖的同时, 也进行了protobuf的导入, 也就是说, mysql这个依赖也依赖于protobuf, 当依赖少的时候还好办, 但是一旦依赖多了, 依赖之间的逻辑层次就不好判断了…

所以我们安装一个maven helper来管理依赖之间的关系
在这里插入图片描述
重启idea生效之后, 我们再次查看刚才的依赖关系

在这里插入图片描述
在这里插入图片描述
可以以列表的形式, 或者是树的形式展开, 这样我们的依赖关系就很清晰了


排除某个依赖

假如我们依赖a依赖于b, 但是此时我们不想要b依赖了, 拿上面的例子来说就是mysql不想依赖protobuf了, 我们就可以排除这个依赖

在这里插入图片描述
在这里插入图片描述
pom文件就变成了上面的样子…

全球仓库, 私服, 本地服务器, 配置国内镜像

这一部分内容, 我们在JDBC那一节已经介绍过了…


第一个SpringBoot项目

创建项目

直接上企业版, 上面给出来科技方法了…社区版很麻烦

在这里插入图片描述

下面是大致的介绍

  • Name: 项目名称
  • Type: 选maven
  • Group: 组织Id
  • ArtifactId: 项目Id

在这里插入图片描述
我们选择Springboot的版本是3.4.2(不要选择带有SNAPSHOT的快照版本)
然后依赖这里我们暂时勾选Spring Web, 其实后面了解就知道了, 这其实就是Spring MVC
创建项目成功后, 我们查看一下pom文件
在这里插入图片描述
这是springboot的基础的一些信息, 也是父工程, 下面的一些没有版本号的依赖, 实际上版本号都在这里面保存

在这里插入图片描述
这里没什么用, 就是一些商标, 版权…等等信息(删除就行)
在这里插入图片描述
第一个是Web开发相关的依赖
第二个是单元测试相关的依赖
第三个是相关的maven插件的依赖

运行SpringBoot程序

在这里插入图片描述
含有@SpringBootApplication注解的就是SpringBoot程序的启动类, 作为程序的入口出现

在这里插入图片描述
创建一个测试的程序进行验证
我们添加了@RestController注解(实质上是作为一种待扫描的标志使用)
@RequestMapping注解是资源路径的注解, 分为类路径(不一定存在)和方法路径(一定存在)
资源路径 = 类路径 + 方法路径
我们现在启动SpringBoot程序
在这里插入图片描述
现在就表示SpingBoot启动成功了, 我们打开浏览器输入URL来访问这个服务器程序
在这里插入图片描述
关于为什么端口号是8080, 下面我们会解释


SpringBoot原理初步

Web服务器

在这里插入图片描述
前⾯我们已经学习了 HTTP 协议, 知道了 HTTP 协议就是 HTTP 客户端和 HTTP 服务器之间的交互数据的格式.
Web 服务器就是对HTTP协议进⾏封装, 程序员不需要直接对协议进⾏操作(自己写代码去解析http协议规则),让Web开发更加便捷, 所以Web服务器也被称为WWW服务器, HTTP服务器, 主要功能是提供⽹上信息浏览服务.
常见的Web服务器有: Apache,Nginx, IIS, Tomcat, Jboss等
SpringBoot 内置了Tomcat服务器, ⽆需配置即可直接运⾏
Tomcat服务器的默认端口号是8080, 所以我们的URL中的默认端口号就是8080
在这里插入图片描述


总结

  • Spring Boot 是为了快速开发 Spring ⽽诞⽣的, Spring Boot 具备:
  • Spring Boot 提供了启动添加依赖的功能, 可以快速集成框架.
  • 内置web服务器,⽆需配置 Tomcat 等 Web服务器,直接运⾏和部署程序.
  • 可以完全抛弃繁琐的 XML,使⽤注解和配置的⽅式进⾏开发.
  • ⽀持更多的监控的指标,可以更好的了解项⽬的运⾏情况等特点.
  • Spring Boot 可使⽤ Idea 或⽹⻚创建,它的设计思想是约定⼤于配置,类上标注
    @SpringBootApplication 就可以启动 Spring Boot 项⽬了.

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

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

相关文章

【Viper】配置格式与支持的数据源与go案例

Viper 是一个用于 Go 应用程序的配置管理库&#xff0c;支持多种配置格式和数据源。 安装依赖 go get github.com/spf13/viper go get github.com/spf13/viper/remote go get go.etcd.io/etcd/client/v3"github.com/spf13/viper/remote"要写在etcd客户端import里 1…

【C/C++】后缀表达式 蓝桥杯/ACM备赛

核心考点&#xff1a;1.栈的应用 2.字符串处理 题目描述 所谓后缀表达式是指这样的一个表达式&#xff1a;式中不再引用括号&#xff0c;运算符号放在两个运算对象之后&#xff0c;所有计算按运算符号出现的顺序&#xff0c;严格地由左而右新进行&#xff08;不用考虑运算符的…

【AI实践】deepseek支持升级git

当前Windows 11 WSL的git是2.17&#xff0c;Android Studio提示需要升级到2.19版本 网上找到指导文章 安装git 2.19.2 cd /usr/src wget https://www.kernel.org/pub/software/scm/git/git-2.19.2.tar.gz tar xzf git-2.19.2.tar.gz cd git-2.19.2 make prefix/usr/l…

QEMU 搭建 Ubuntu x86 虚拟机

1. 安装 QEMU 在 Ubuntu 系统中&#xff0c;可以通过以下命令安装 QEMU&#xff1a; sudo apt-get update sudo apt-get install qemu-system-x86_64 qemu-kvm libvirt-daemon libvirt-clients bridge-utils virt-manager2. 创建虚拟硬盘镜像 qemu-img create -f raw ubuntu…

Linux驱动层学习:Linux 设备树

设备树是一种数据结构&#xff0c;包含多个节点&#xff0c;用于描述硬件设备及其配置信息&#xff0c;它通常用于嵌入式系统中&#xff0c;尤其是在Linux操作系统中&#xff0c;帮助操作系统识别和管理硬件资源&#xff0c;设备树不是代码&#xff0c;而是一种用数据描述硬件信…

金蝶云星空与钉钉高效数据集成案例分享

金蝶云星空数据集成到钉钉的技术案例分享 在企业信息化系统中&#xff0c;数据的高效流动和实时反馈是提升业务效率的关键。本文将聚焦于一个具体的系统对接集成案例&#xff1a;如何将金蝶云星空的数据集成到钉钉&#xff0c;并实现审核状态的回传提示。 本次集成方案名为“…

图形渲染(一)——Skia、OpenGL、Mesa 和 Vulkan简介

1.Skia —— 2D 图形库 Skia 是一个 2D 图形库&#xff0c;它的作用是为开发者提供一个高层次的绘图接口&#xff0c;方便他们进行 2D 图形渲染&#xff08;比如绘制文本、形状、图像等&#xff09;。Skia 本身不直接管理 GPU 或进行底层的渲染工作&#xff0c;而是通过 底层图…

GIT提错分支,回滚提交

1. 准备示例 假设我们有三次提交&#xff1a; test1&#xff1a;需要在 master 分支提交test2、test3&#xff1a;需要在 develop 分支提交 远端线上记录 2. 步骤 选择需要回退的记录&#xff1a; 选中需要回退的 commit&#xff0c;选择 Reset Current Branch to Here...。…

【原创】在ubuntu中搭建gradle开发环境

检查Linux版本 rootwww:~# hostnamectlStatic hostname: www.0x88.comIcon name: computer-vmChassis: vmMachine ID: 30fa955a36be492ca459599ef20bc508Boot ID: 37084dbe36f44adaa075e8f9a98f132eVirtualization: kvm Operating System: Ubuntu 22.04.5 LTSKernel: Linux 5.…

【JavaEE进阶】MyBatis入门

目录 &#x1f334;前言 &#x1f332;什么是MyBatis? &#x1f333;准备工作 &#x1f6a9;创建工程 &#x1f6a9;配置数据库连接字符串 &#x1f6a9;数据准备 &#x1f6a9;编写持久层代码 &#x1f343;单元测试 &#x1f334;前言 在应⽤分层学习时,我们了解到…

以太网详解(八)传输层协议:TCP/UDP 协议

文章目录 传输层协议概述为什么需要传输层&#xff1f;传输层功能网络层与传输层在实现 “端到端” 传输的异同两类服务:面向连接/无连接服务 传输控制协议 TCPTCP 协议数据单元格式TCP 的重传机制快重传和快恢复快重传举例快恢复算法 用户数据报协议 UDPUDP 概述UDP 基本工作过…

Electron 客户端心跳定时任务调度库调研文档 - Node.js 任务调度库技术调研文档

Electron 客户端心跳定时任务调度库调研文档 - Node.js 任务调度库技术调研文档 本文将对七个流行的定时任务调度库&#xff1a;node-cron、rxjs、bull、node-schedule、agenda、bree、cron。这些库都可以用来处理定时任务&#xff0c;但它们的特点和适用场景有所不同。我们将从…

DeepSeek 开放平台无法充值 改用其他平台API调用DeepSeek-chat模型方法

近几天DeepSeek开放平台无法充值目前已经关闭状态&#xff0c;大家都是忙着接入DeepSeek模型 &#xff0c;很多人想使用DeepSeek怎么办&#xff1f; 当然还有改用其他平台API调用方法&#xff0c;本文以本站的提供chatgpt系统为例&#xff0c;如何修改DeepSeek-chat模型API接口…

pix2text 使用经验

给同行打鸡血 &#x1f60a; 构建结构化的数理领域知识库&#xff1a; 提高可访问性和可搜索性 Markdown和LaTeX格式&#xff1a;这两种格式易于在线发布和共享&#xff0c;有助于提高数学内容的可访问性。搜索引擎优化&#xff1a;将PDF内容转换为标记语言&#xff0c;可以…

Linux(centos)系统安装部署MySQL8.0数据库(GLIBC版本)

安装前检查服务器glibc版本&#xff0c;下载对应版本包 rpm -qa | grep glibc mysql安装包及依赖包已整理好&#xff0c;下载地址&#xff1a;https://pan.quark.cn/s/3137acc814c0&#xff0c;下载即可安装 一、下载MySQL mysql安装包及依赖包已整理好&#xff0c;下载地址…

6.2.图的存储结构-邻接矩阵法

一.邻接矩阵法存储不带权图&#xff1a; 结点不带权值&#xff1a; 1.左图的无向图中&#xff0c;A到B直达的有一条路&#xff0c;所以A行B列的值为1&#xff1b; 左图的无向图中&#xff0c;A到F没有直达的路&#xff0c;所以A行F列的值为0&#xff1b; 结论&#xff1a;无…

【VB语言】EXCEL中VB宏的应用

【VB语言】EXCEL中VB宏的应用 文章目录 [TOC](文章目录) 前言一、EXCEL-VB1.实验过程2.代码 二、EXCEL-VB 生成.c.h文件1.实验过程2.代码 四、参考资料总结 前言 1.WPS-VB扩展包 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、EXCEL-VB 1.实验过…

用deepseek学大模型05逻辑回归

deepseek.com:逻辑回归的目标函数&#xff0c;损失函数&#xff0c;梯度下降 标量和矩阵形式的数学推导&#xff0c;pytorch真实能跑的代码案例以及模型,数据&#xff0c;预测结果的可视化展示&#xff0c; 模型应用场景和优缺点&#xff0c;及如何改进解决及改进方法数据推导。…

2025年02月17日Github流行趋势

项目名称&#xff1a;OmniParser 项目地址url&#xff1a;https://github.com/microsoft/OmniParser 项目语言&#xff1a;Jupyter Notebook 历史star数&#xff1a;8971 今日star数&#xff1a;969 项目维护者&#xff1a;yadong-lu, ThomasDh-C, aliencaocao, nmstoker, kris…

RocketMQ 5.0安装部署

0.前言 在微服务架构逐渐成为主流的今天&#xff0c;消息队列如同数字世界的快递员&#xff0c;承担着系统间高效通信的重要使命。 Apache RocketMQ 自诞生以来&#xff0c;因其架构简单、业务功能丰富、具备极强可扩展性等特点被众多企业开发者以及云厂商广泛采用。历经十余…