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.rhkb.cn/news/19815.html

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

相关文章

Win11配置wsl、ubuntu、docker

系统要求 安装WSL。 开通虚拟化&#xff1a; 准备工作 dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestartdism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestartwsl --set-default-versi…

数据结构 day02

3. 线性表 3.1. 顺序表 3.1.3. 顺序表编程实现 操作&#xff1a;增删改查 .h 文件 #ifndef __SEQLIST_H__ #define __SEQLIST_H__ #define N 10 typedef struct seqlist {int data[N];int last; //代表数组中最后一个有效元素的下标 } seqlist_t;//1.创建一个空的顺序表 seq…

C# 两种方案实现调用 DeepSeek API

目录 序 开发运行环境 访问API的一个通用方法 原生官网实现 申请 API key 调用实现 调用示例 腾讯云知识引擎原子调用 申请 API key 调用示例 小结 序 DeepSeek&#xff08;深度求索&#xff09; 最近可谓火爆的一塌糊涂&#xff0c;具体的介绍这里不再赘述&#x…

23. AI-大语言模型

文章目录 前言一、LLM1. 简介2. 工作原理和结构3. 应用场景4. 最新研究进展5. 比较 二、Transformer架构1. 简介2. 基本原理和结构3. 应用场景4. 最新进展 三、开源1. 开源概念2. 开源模式3. 模型权重 四、再谈DeepSeek 前言 AI‌ 一、LLM LLM&#xff08;Large Language Mod…

web前端第三次作业:登录窗口拖动效果

<!DOCTYPE html> <html lang"zh"> <head> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1.0"> <title>登录窗口拖动效果</title> <style>…

【PCIe 总线及设备入门学习专栏 1.1 -- PCI 设备访问方法】

文章目录 CPU 地址空间与PCI 地址空间PCI 地址空间CPU 地址空间Host Bridge PCI 设备连接框图PCI 硬件信号Configuration Commands CPU 地址空间与PCI 地址空间 PCI 地址空间 PCI总线具有32位数据/地址复用总线&#xff0c;所以其存储地址空间为2的32次方4GB。也就是PCI上的所…

CentOS 7超详细安装教程(含镜像)

1. 安装前准备 1.1 CentOS简介 CentOS&#xff08;Community Enterprise Operating System&#xff0c;中文意思是&#xff1a;社区企业操作系统&#xff09;是一种基于 Red Hat Enterprise Linux&#xff08;RHEL&#xff09;源代码构建的免费开源操作系统。它在稳定性、安全…

【Linux】详谈 进程控制

目录 一、进程是什么 二、task_struct 三、查看进程 四、创建进程 4.1 fork函数的认识 4.2 2. fork函数的返回值 五、进程终止 5.1. 进程退出的场景 5.2. 进程常见的退出方法 5.2.1 从main返回 5.2.1.1 错误码 5.2.2 exit函数 5.2.3 _exit函数 5.2.4 缓冲区问题补…

音视频入门基础:RTP专题(9)——FFmpeg接收RTP流的原理和内部实现

一、引言 由《音视频入门基础&#xff1a;RTP专题&#xff08;2&#xff09;——使用FFmpeg命令生成RTP流》可以知道&#xff0c;推流端通过下面FFmpeg命令可以将一个媒体文件转推RTP&#xff0c;生成RTP流&#xff1a; ffmpeg -re -stream_loop -1 -i input.mp4 -vcodec cop…

大模型Deepseek的使用_基于阿里云百炼和Chatbox

目录 前言1. 云服务商2. ChatBox参考 前言 上篇博文中探索了&#xff08;本地&#xff09;部署大语言模型&#xff0c;适合微调、数据高隐私性等场景。随着Deepseek-R1的发布&#xff0c;大语言模型的可及性得到极大提升&#xff0c;应用场景不断增加&#xff0c;对高可用的方…

zookeeper watch

目录 回顾回调&观察者模式&发布订阅模式Zookeeper 客户端/ 服务端 watchgetChildren 为例最后归纳 回顾回调&观察者模式&发布订阅模式 回调的思想 类A的a()方法调用类B的b()方法类B的b()方法执行完毕主动调用类A的callback()方法 回调分为同步回调和异步回调…

PAT乙组(1016 部分A+B 1017 A除以B)C语言超详细

文章目录 1016 部分AB1017 A除以B 1016 部分AB 输入样例 1&#xff1a; 3862767 6 13530293 3输出样例 1&#xff1a; 399输入样例 2&#xff1a; 3862767 1 13530293 8输出样例 2&#xff1a; 0代码长度限制 16 KB 时间限制 150 ms 内存限制 64 MB 栈限制 8192 KB 思路解析…

论文笔记:Multi-Head Mixture-of-Experts

2024 neurips 1 背景 稀疏混合专家&#xff08;SMoE&#xff09;可在不显著增加训练和推理成本的前提下提升模型的能力【比如Mixtral 8*7B&#xff0c;表现可以媲美LLaMA-2 70B】 但它也有两个问题 专家激活率低&#xff08;下图左&#xff09; 在优化时只有一小部分专家会被…

【Azure 架构师学习笔记】- Azure Databricks (11) -- UC搭建

本文属于【Azure 架构师学习笔记】系列。 本文属于【Azure Databricks】系列。 接上文 【Azure 架构师学习笔记】- Azure Databricks (10) – UC 使用 前言 由于ADB 的更新速度很快&#xff0c;在几个月之后重新搭建ADB 时发现UC 已经更新了很多&#xff0c;为了后续做ADB 的功…

解锁养生秘籍,拥抱健康生活

在这个快节奏的时代&#xff0c;人们行色匆匆&#xff0c;常常在忙碌中忽略了健康。其实&#xff0c;养生并非遥不可及&#xff0c;它就藏在生活的细微之处&#xff0c;等待我们去发现和实践。 规律作息是健康的基础。日出而作&#xff0c;日落而息&#xff0c;顺应自然规律&am…

动手学Agent——Day2

文章目录 一、用 Llama-index 创建 Agent1. 测试模型2. 自定义一个接口类3. 使用 ReActAgent & FunctionTool 构建 Agent 二、数据库对话 Agent1. SQLite 数据库1.1 创建数据库 & 连接1.2 创建、插入、查询、更新、删除数据1.3 关闭连接建立数据库 2. ollama3. 配置对话…

最新国内 ChatGPT Plus/Pro 获取教程

最后更新版本&#xff1a;20250202 教程介绍&#xff1a; 本文将详细介绍如何快速获取一张虚拟信用卡&#xff0c;并通过该卡来获取ChatGPT Plus和ChatGPT Pro。 # 教程全程约15分钟开通ChatGPT Plus会员帐号前准备工作 一个尚未升级的ChatGPT帐号&#xff01;一张虚拟信用卡…

Redis哈希槽机制的实现

Redis哈希槽机制的实现 Redis集群使用哈希槽&#xff08;Hash Slot&#xff09;来管理数据分布&#xff0c;整个集群被划分为固定的16384个哈希槽。当我们在集群中存储一个键时&#xff0c;Redis会先对键进行哈希运算&#xff0c;得到一个哈希值。然后&#xff0c;Redis将该哈…

下载安装运行测试开源vision-language-action(VLA)模型OpenVLA

1. 安装 项目官网OpenVLA 首先按照官网提示的以下代码&#xff0c;执行创建环境->安装最小依赖->git克隆项目等 # Create and activate conda environment conda create -n openvla python3.10 -y conda activate openvla# Install PyTorch. Below is a sample comma…

外贸跨境订货系统流程设计、功能列表及源码输出

在全球化的商业环境下&#xff0c;外贸跨境订货系统对于企业拓展国际市场、提升运营效率至关重要。该系统旨在为外贸企业提供一个便捷、高效、安全的订货平台&#xff0c;实现商品展示、订单管理、物流跟踪等功能&#xff0c;满足跨境业务的多样化需求。以下将详细阐述外贸订货…