JavaEE-SpringBoot快速入门

news2025/3/13 13:12:23

文章目录

  • 本节目标
  • 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.coloradmin.cn/o/2300428.html

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

相关文章

游戏引擎学习第107天

仓库:https://gitee.com/mrxiao_com/2d_game_2 回顾我们之前停留的位置 在这段内容中&#xff0c;讨论了如何处理游戏中的三维效果&#xff0c;特别是如何处理额外的“Z层”。由于游戏中的艺术资源是位图而不是3D模型&#xff0c;因此实现三维效果变得非常具有挑战性。虽然可…

ComfyUI流程图生图原理详解

一、引言 ComfyUI 是一款功能强大的工具&#xff0c;在图像生成等领域有着广泛应用。本文补充一点ComfyUI 的安装与配置过程遇到的问题&#xff0c;并深入剖析图生图过程及相关参数&#xff0c;帮助读者快速入门并深入理解其原理。 二、ComfyUI 的安装与配置中遇到的问题 &a…

使用右侧值现象来处理一个word导入登记表的需求

需求也简单&#xff0c;导word文件用户登记表&#xff0c;有各部门的十几个版本&#xff08;为什么这么多&#xff1f;不知道&#xff09;。这里说下谈下我的一些代码做法&#xff1a; 需求分析&#xff1a; 如果能解决java字段和各项填的值怎么配对的问题&#xff0c;那么就…

《open3d pyqt》Alpha重建

《open3d pyqt》Alpha重建 一、效果展示二、qt设置2.1 主界面添加动作2.2 dialog 界面、布局如下:三、核心代码一、效果展示 二、qt设置 2.1 主界面添加动作 2.2 dialog 界面、布局如下: 并生成py文件,参考前述章节 三、核心代码 main.py文件增加 from Su

小程序canvas2d实现横版全屏和竖版逐字的签名组件(字帖式米字格签名组件)

文章标题 01 功能说明02 效果预览2.1 横版2.2 竖版 03 使用方式04 横向签名组件源码4.1 html 代码4.2 业务 Js4.3 样式 Css 05 竖向签名组件源码5.1 布局 Html5.2 业务 Js5.3 样式 Css 01 功能说明 技术栈&#xff1a;uniapp、vue、canvas 2d 需求&#xff1a; 实现横版的全…

MoE演变过程

MoE演变过程 1 MoE1.1 BasicMoE1.2 SparseMoE1.2.1 实现 1.3 Shared Expert SparseMoE 1 MoE 参考&#xff1a;https://huggingface.co/blog/zh/moe 1.1 BasicMoE 用router给出各专家的权重&#xff0c;然后让输入过每一个专家&#xff0c;然后做加权求和。 1.2 SparseMoE …

【实战项目】BP神经网络识别人脸朝向----MATLAB实现

(꒪ꇴ꒪ )&#xff0c;Hello我是祐言QAQ我的博客主页&#xff1a;C/C语言&#xff0c;数据结构&#xff0c;Linux基础&#xff0c;ARM开发板&#xff0c;网络编程等领域UP&#x1f30d;快上&#x1f698;&#xff0c;一起学习&#xff0c;让我们成为一个强大的攻城狮&#xff0…

【1.8w字深入解析】从依赖地狱到依赖天堂:pnpm 如何革新前端包管理?

目录 前言npm 的诞生与发展嵌套依赖模型存在的问题npm3架构与yarnYarn 的诞生与局限Yarn 的诞生背景Yarn 仍然存在的问题 何为幽灵依赖依赖结构的不确定性pnpm王牌登场 -- 网状平铺结构安装包速度快依赖管理软链接 和 硬链接 机制 幽灵依赖产生的根本原因包管理工具的依赖解析机…

137,【4】 buuctf web [SCTF2019]Flag Shop

进入靶场 都点击看看 发现点击work会增加&#xffe5; 但肯定不能一直点下去 抓包看看 这看起来是一个 JWT&#xff08;JSON Web Token&#xff09;字符串。JWT 通常由三部分组成&#xff0c;通过点&#xff08;.&#xff09;分隔&#xff0c;分别是头部&#xff08;Header&…

【c++】c++内存管理

目录 c和c的内存分布回顾C语言动态管理内存的方式malloccallocreallocfree C动态管理内存的方式new和deleteoperator new和operator delete定位new c和c的内存分布 回顾C语言动态管理内存的方式 malloc void* malloc (size_t size);malloc可以在堆上开辟指定内存的空间&#…

EtherNet/IP转Modbus TCP:新能源风电监控与分析实用案例

EtherNet/IP转Modbus TCP&#xff1a;新能源风电监控与分析实用案例 一、案例背景 在某新能源汽车电池生产线上&#xff0c;需要将采用EtherNet/IP协议的电池检测设备与采用ProfiNet协议的生产线控制系统进行集成&#xff0c;以实现对电池生产过程的全面监控和数据采集。 二、…

数字电路-基础逻辑门实验

基础逻辑门是数字电路设计的核心元件&#xff0c;它们执行的是基本的逻辑运算。通过这些基本运算&#xff0c;可以构建出更为复杂的逻辑功能。常见的基础逻辑门包括与门&#xff08;AND&#xff09;、或门&#xff08;OR&#xff09;、非门&#xff08;NOT&#xff09;、异或门…

国产编辑器EverEdit - 如虎添翼的功能:快速选择

1 快速选择 1.1 应用场景 快速选择适用于批量选择和修改的场景&#xff0c;比如&#xff1a;变量改名。 1.2 使用方法 1.2.1 逐项快速选择 将光标放置在单词前或单词中&#xff0c;选择主菜单查找 -> 快速选择 -> 快速选择或使用快捷键Ctrl D 注&#xff1a;光标放…

国内外网络安全政策动态(2025年1月)

▶︎ 1.国家互联网信息办公室发布《个人信息出境个人信息保护认证办法&#xff08;征求意见稿&#xff09;》 1月3日&#xff0c;国家互联网信息办公室发布《个人信息出境个人信息保护认证办法&#xff08;征求意见稿&#xff09;》。根据《意见稿》&#xff0c;个人信息出境个…

68页PDF | 数据安全总体解决方案:从数据管理方法论到落地实践的全方位指南(附下载)

一、前言 这份报告旨在应对数字化转型过程中数据安全面临的挑战&#xff0c;并提供全面的管理与技术体系建设框架。报告首先分析了数字化社会的发展背景&#xff0c;强调了数据安全在国家安全层面的重要性&#xff0c;并指出数据安全风险的来源和防护措施。接着&#xff0c;报…

AI大模型的文本流如何持续吐到前端,实时通信的技术 SSE(Server-Sent Events) 认知

写在前面 没接触过 SSE&#xff08;Server-Sent Events&#xff09;&#xff0c;AI大模型出来之后&#xff0c;一直以为文本流是用 WebSocket 做的偶然看到返回到报文格式是 text/event-stream,所以简单认知&#xff0c;整理笔记博文内容涉及 SSE 认知&#xff0c;以及对应的 D…

Electron:使用electron-react-boilerplate创建一个react + electron的项目

使用 electron-react-boilerplate git clone --depth 1 --branch main https://github.com/electron-react-boilerplate/electron-react-boilerplate.git your-project-name cd your-project-name npm install npm start 安装不成功 在根目录加上 .npmrc文件 内容为 electron_…

Spring Boot三:Springboot自动装配原理

精心整理了最新的面试资料&#xff0c;有需要的可以自行获取 点击前往百度网盘获取 点击前往夸克网盘获取 原理初探 pom.xml 核心依赖在父工程中 spring-boot-dependencies所有的jar包都在这里管理 我们在写或者引入一些依赖的时候&#xff0c;不需要指定版本 启动器 <…

2024 年 CSDN 博客之星年度评选:技术创作与影响力的碰撞(统计时间2025-02-17 11:06:06)

摘要&#xff1a;在技术的海洋里&#xff0c;每一位博主都像是一座独特的灯塔&#xff0c;用自己创作的光芒照亮他人前行的道路。2024 年 CSDN 博客之星年度评选活动&#xff0c;正是对这些灯塔的一次盛大检阅&#xff0c;让我们看到了众多优秀博主在技术创作领域的卓越表现以及…

Java零基础入门笔记:(3)程序控制

前言 本笔记是学习狂神的java教程&#xff0c;建议配合视频&#xff0c;学习体验更佳。 【狂神说Java】Java零基础学习视频通俗易懂_哔哩哔哩_bilibili Scanner对象 之前我们学的基本语法中我们并没有实现程序和人的交互&#xff0c;但是Java给我们提供了这样一个工具类&…