当前位置: 首页 > news >正文

初始SpringBoot

此文介绍一些有关我对SpringBoot的学习理解,
声明:此处我的IDEA是企业版的,可能和社区版会有一些差异

1. 第⼀个SpringBoot程序

1. SpringBoot介绍

我们看下Spring官方的介绍
在这里插入图片描述

可以看到,Spring让Java程序更加快速,简单和安全.Spring对于速度、简单性和生产力的关注使其成为世界上最流行的Java框架。
Spring官方提供了很多开源的项目,覆盖范围从Web开发到大数据,Spring发展到了今天,已经形成了自己的生态圈.我们在开发时,也倾向于使用Spring官方提供的技术,来解决对应的问题.
在这里插入图片描述
这些项目都是基于SpringFramework来进行开发的,但是SpringFramework存在配置多,入门难的问题,Spring也意识到了这个问题,为了简化开发者的使用,从而创造性的推出了SpringBoot.
Spring Boot的诞生是为了简化Spring程序开发的.

1.2 Spring Boot项⽬创建

1.2.1 项目创建方法

因为我使用的Idea企业版,可以直接创建
在这里插入图片描述
在这里插入图片描述

对于其他社区版的创建就相对麻烦了,先要安装SpringBootHelper插件才能创建Spring Boot 项目,但是官方已经不提供该插件的下载了,所以是社区版的小明们,可以下载一个企业版或者看看别的博主有没有相关解决办法
还有一种方式就是我们可以使用Spring官方提供的网页版来创建SpringBoot 项目
网页版创建项目先访问:网页创建SpingBoot项目
在这里插入图片描述

1.2.2 项目创建后目录

无论用那种方式创建,创建好之后的项目目录如下:
在这里插入图片描述
说明:
Spring Boot 项目有两个主要的目录:

  • src/main/java: Java源代码
  • src/main/resources: 为静态资源或配置⽂件:
    /static: 静态资源文件夹,比如js,css,html等静态文件,不需要服务器数据进行绑定的页面
    /templates: 模版资源文件夹,主要存放动态模板文件,比如JSP,Freemarker,Thymeleaf等需要服务器动态渲染数据的文件
  • src/test/java: 测试代码源代码
  • target: 编译后的文件路径
  • pom.xml: maven配置文件

1.2.3 pom文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.4.4</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.example</groupId><artifactId>demo</artifactId><version>0.0.1-SNAPSHOT</version><name>demo</name><description>demo</description><url/><licenses><license/></licenses><developers><developer/></developers><scm><connection/><developerConnection/><tag/><url/></scm><properties><java.version>17</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

pom.xml文件里的具体信息,不需要过度关注,我们主要看<dependencies>标签⾥⾯的内容
pom文件中,引入了两个依赖

  • spring-boot-starter-web:包含了web应用开发所需要的常见依赖
  • spring-boot-starter-test:包含了单元测试所需要的常见依赖

1.2.4 pom文件涉及的父工程

我们发现,pom文件中这个依赖没有指定具体的版本号,但我们的jar包也正常引入到项目中了.并且查看的话,是有版本号的
在这里插入图片描述
在这里插入图片描述
并且我们发现本地的jar包也是下载下来的,那么为什么这里没有指定<version> ,程序也可以正常运行呢?
因为每⼀个SpringBoot工程,都有⼀个父工程.其依赖的版本号,在父工程中统⼀管理.
父工程指定版本号后,就会自动引入和所指定版本对应的依赖,创建的SpringBoot项目,会继承SpringBoot父工程.

在这里插入图片描述

1.2.5 运行第一个SpringBoot项目

在创建好一个SpringBoot项目后就会自动生成一个启动类,如下:

在这里插入图片描述
说明@SpringBootApplication是SpringBoot启动类注解

启动后效果图如下:

在这里插入图片描述

1.2.6 输出内容到浏览器页面

普通的Java类只能将结果输出到IDEA的控制台上,并不能在浏览器上有效果,不是我们想要的结果,所以我们要使用SpringBoot来实现和浏览器及用户的交互

在创建的项目包路径下创建UserController文件,实现代码如下:

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class UserController {@RequestMapping("/hello")public String hello(){return "hello,my 1st spring boot project";}
}

重新启动项目,访问 http://127.0.0.1:8080/hello 最终效果如下:

在这里插入图片描述

1.2.7 Web服务器

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

1.2.8 请求响应流程分析

浏览器输入URL之后,发起请求,就和服务器之间建立了连接
服务器:
在这里插入图片描述

浏览器:

  • 输入网址:http://127.0.0.1:8080/hello
  • 通过IP地址127.0.0.1定位到网络上的⼀台计算机,127.0.0.1就是本机
  • 通过端口号8080找到计算机上对应的进程,也就是在本地计算机中找到正在运行的8080端口的程序
  • /user/sayhi是请求资源位置
  • 资源:对计算机而言资源就是数据
  • web资源:通过网络可以访问到的资源(通常是指存放在服务器上的数据)
  • http://127.0.0.1:8080/user/hello,就是向本地计算机中的8080端口程序,获取资源位置是/user/hello的数据
  • 8080端口程序,在服务器找/hello位置的资源数据,发给浏览器

服务器:

  • 接收到浏览器发送的信息(如:/user/hello)
  • 在服务器上找到/user/hello的资源
  • 把资源发送给浏览器

1.2.9 常见的访问出错情况

1.2.9.1 404

404 表示用户访问的资源不存在.大概率是URL的路径写的不正确

情况1:单词拼写错误
在这里插入图片描述

情况2:注解错误

//注解错误
@Controller
public class UserController {@RequestMapping("/hello")public String hello(){return "hello,my 1st spring boot project";}
}

在这里插入图片描述

1.2.9.2 500

服务器出现内部错误.⼀般是服务器的代码执行过程中遇到了些特殊情况(服务器异常崩溃)会产生这个状态码.

比如:

@RestController
public class UserController {@RequestMapping("/hello")public String hello(){//此处10/0 错误int a=10/0;return "hello,my 1st spring boot project";}
}

在这里插入图片描述

此时,程序后端控制台已经打印了具体的异常调用栈
在这里插入图片描述

1.2.9.3 无法访问此网站

⼀般是Tomcat启动失败了.

在这里插入图片描述

这种情况⼀般是服务未成功启动,也就是tomcat未启动,或者IP/端口写错

打开Fiddler的话,页面如下:
在这里插入图片描述

以上就是我对第一个springboot的理解和总结

相关文章:

初始SpringBoot

此文介绍一些有关我对SpringBoot的学习理解&#xff0c; 声明&#xff1a;此处我的IDEA是企业版的&#xff0c;可能和社区版会有一些差异 1. 第⼀个SpringBoot程序 1. SpringBoot介绍 我们看下Spring官方的介绍 可以看到,Spring让Java程序更加快速,简单和安全.Spring对于速…...

【算法笔记】动态规划基础(一):dp思想、基础线性dp

目录 前言动态规划的精髓什么叫“状态”动态规划的概念动态规划的三要素动态规划的框架无后效性dfs -> 记忆化搜索 -> dp暴力写法记忆化搜索写法记忆化搜索优化了什么&#xff1f;怎么转化成dp&#xff1f;dp写法 dp其实也是图论首先先说结论&#xff1a;状态DAG是怎样的…...

C++入门基础(2)

Hello~,欢迎大家来到我的博客进行学习&#xff01; 目录 1.缺省参数2.函数重载3.引用3.1 引用的概念和定义3.2 引用的特性3.3引用的使用3.4 const引用3.5 指针和引用的关系扩展 4. nullptr 1.缺省参数 缺省参数是声明或定义函数时为函数的参数指定⼀个缺省值。在调用该函数时&…...

OpenCV-Python (官方)中文教程(部分一)_Day15

18.图像梯度 梯度简单来说就是求导。 OpenCV 提供了三种不同的梯度滤波器,或者说高通滤波器&#xff1a;Sobel, Scharr和Laplacian。Sobel,Scharr 其实就是求一阶或二阶导数。Scharr 是对 Sobel&#xff08;使用小的卷积核求解求解梯度角度时&#xff09;的优化。Laplacian 是…...

大厂面试:MySQL篇

前言 本章内容来自B站黑马程序员java大厂面试题和小林coding 博主学习笔记&#xff0c;如果有不对的地方&#xff0c;海涵。 如果这篇文章对你有帮助&#xff0c;可以点点关注&#xff0c;点点赞&#xff0c;谢谢你&#xff01; 1.MySQL优化 1.1 定位慢查询 定位 一个SQL…...

软件工程的13条“定律”:从Hyrum定律到康威定律,再到Zawinski定律

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…...

Linux删除大文件df空间avail空间不增加

背景 根磁盘被同事写满&#xff0c;使用> 删除一些安装包后&#xff0c;df中的avail空间还是0 排除有进程正在占用文件&#xff0c;已使用lsof命令检测过我所删的文件是没有进程在使用 原因 是文件系统预留空间在作祟 解决 # 文件系统预留块 tune2fs -l /dev/vda2 | gr…...

【C语言-选择排序算法】实现对十个数进行排序

目录 前言 一、选择排序算法原理 二、选择排序算法实现对十个数进行排序 三、代码运行示例 四、选择排序算法的时间复杂度和空间复杂度分析 五、选择排序算法的优缺点 六、总结 前言 在计算机科学领域&#xff0c;排序算法是基石般的存在&#xff0c;它们就像是整理杂乱…...

驱动开发硬核特训 · Day 18:深入理解字符设备驱动与子系统的协作机制(以 i.MX8MP 为例)

日期&#xff1a;2025年04月23日 回顾&#xff1a;2025年04月22日&#xff08;Day 17&#xff1a;Linux 中的子系统概念与注册机制&#xff09; 本日主题&#xff1a;字符设备驱动 子系统协作机制剖析 学习目标&#xff1a;理解字符设备的注册原理&#xff0c;掌握其与子系统间…...

SQL Server 2022 常见问题解答:从安装到优化的全场景指南

SQL Server 2022 作为微软最新的数据库管理系统&#xff0c;在性能、安全性和云集成方面带来了多项革新。然而&#xff0c;用户在实际使用中仍可能遇到各类问题。本文将围绕安装配置、性能优化、备份恢复、安全设置、高可用性方案、兼容性问题及错误代码解析等核心场景&#xf…...

软件开发版本库命名规范说明

背景&#xff1a;近期一直再更新自己所开发的一个前端大文件上传npm库(enlarge-file-upload)&#xff0c;为了让库的发版更加规范&#xff0c;于是参考了各种文档写下了这篇关于软件开发库的版本命名规范&#xff0c;且不仅局限于前端的版本命名规范&#xff0c;适用于整个软件…...

Kafka 详解

1.基本概念&#xff1a;Kafka 是分布式发布 - 订阅消息系统&#xff0c;具有高吞吐量、可扩展性等优势&#xff0c;支持点对点和发布订阅两种消息模式&#xff0c;涉及 Broker、Topic、Partition 等多种角色。 2.安装步骤&#xff1a;需先安装 JDK 和 Zookeeper&#xff0c;下…...

【Qwen2.5-VL 踩坑记录】本地 + 海外账号和国内账号的 API 调用区别(阿里云百炼平台)

API 调用 阿里云百炼平台的海内外 API 的区别&#xff1a; 海外版&#xff1a;需要进行 API 基础 URL 设置国内版&#xff1a;无需设置。 本人的服务器在香港&#xff0c;采用海外版的 API 时&#xff0c;需要进行如下API端点配置 / API基础URL设置 / API客户端配置&#xf…...

硬核解析:整车行驶阻力系数插值计算与滑行阻力分解方法论

引言&#xff1a;阻力优化的核心价值 在汽车工程领域&#xff0c;行驶阻力是影响动力性、经济性及排放的核心因素。根据统计&#xff0c;车辆行驶中约60%的燃油消耗用于克服阻力&#xff08;风阻、滚阻、传动内阻等&#xff09;。尤其在电动化趋势下&#xff0c;阻力降低1%可提…...

【网络原理】TCP提升效率机制(一):滑动窗口

目录 一. 前言 二. 滑动窗口 三. 丢包现象 1&#xff09;ACK报文丢失 2&#xff09;数据丢失 四. 总结 一. 前言 TCP最核心的机制就是可靠传输 &#xff0c;确认应答&#xff0c;超时重传&#xff0c;连接管理这些都保证了可靠传输&#xff0c;得到了可靠传输&#xff0c…...

移动端使用keep-alive将页面缓存和滚动缓存具体实现方法 - 详解

1. 配置组件名称 确保列表页组件设置了name选项&#xff0c;&#xff08;组合式API额外配置&#xff09;&#xff1a; <!-- vue2写法 --> export default {name: UserList // 必须与 <keep-alive> 的 include 匹配 }<!-- vue3写法 --> defineOptions({na…...

工作记录9

1.点击按钮发送AJAX请求 <!DOCTYPE html> <html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title&…...

Java 异常 SSLException: fatal alert: protocol_version 全解析与解决方案

在 Java 网络通信中&#xff0c;SSLException: fatal alert: protocol_version 是典型的 TLS/SSL 协议版本不兼容异常。本文结合 Java 官方规范、TLS 协议标准及实战经验&#xff0c;提供体系化解决方案&#xff0c;帮助开发者快速定位并解决协议版本冲突问题。 一、异常本质&…...

连锁美业管理系统「数据分析」的重要左右分析︳博弈美业系统疗愈系统分享

​美业管理系统中的数据分析功能在提升运营效率、优化客户体验、增强决策科学性等方面具有重要作用。 数据分析功能将美业从“经验驱动”升级为“数据驱动”&#xff0c;帮助商家在客户管理、成本控制、服务创新等环节实现精细化运营&#xff0c;最终提升盈利能力与品牌竞争力…...

Openharmony 和 HarmonyOS 区别?

文章目录 OpenHarmony 与 HarmonyOS 的区别&#xff1a;开源生态与商业发行版的定位差异一、定义与定位二、技术架构对比1. OpenHarmony2. HarmonyOS 三、应用场景差异四、开发主体与生态支持五、关键区别总结六、如何选择&#xff1f;未来展望 OpenHarmony 与 HarmonyOS 的区别…...

26.OpenCV形态学操作

OpenCV形态学操作 形态学操作&#xff08;Morphological Operations&#xff09;源自二值图像处理&#xff0c;主要用于分析和处理图像中的结构元素&#xff0c;对图像进行去噪、提取边缘、分割等预处理步骤。OpenCV库中提供了丰富的形态学函数&#xff0c;常见的包括&#xf…...

uniapp小程序使用echarts

1、引入插件 在Dcloud插件市场下载echarts插件&#xff1a;插件地址 2、页面使用简单示例&#xff1a; <template><view class"pie-view flex-center"><view style"width: 100%; height: 600rpx"><l-echart ref"chartRef&quo…...

Vue 中 使用 Mixins 解决 多页面共用相同组件的相关问题

1. 需要解决的问题 最近在vue项目中&#xff0c;有多个页面需要用到同一个组件&#xff0c;至于是什么组件&#xff0c;这里不重要&#xff0c;重要的这个组件需要被多个文件引用&#xff0c;而且有组件有一些控制逻辑。 1.1代码展示 <template><div class"ap…...

Rust 学习笔记:Rust 简介

Rust 学习笔记&#xff1a;Rust 简介 Rust 学习笔记&#xff1a;Rust 简介历史与发展历程核心特性优点缺点应用领域 Rust 学习笔记&#xff1a;Rust 简介 Rust 是一种系统级编程语言&#xff0c;由 Mozilla 研究院的 Graydon Hoare 于 2006 年设计&#xff0c;旨在提供内存安全…...

第六节:进阶特性高频题-自定义指令实现场景

示例&#xff1a;v-lazy&#xff08;图片懒加载&#xff09;、v-permission&#xff08;权限控制&#xff09; 钩子函数&#xff1a;mounted、updated、unmounted等 一、自定义指令核心机制 指令生命周期钩子 const myDirective {// 元素插入父节点时调用&#xff08;初始化…...

未曾设想的道路1

写在前面&#xff1a; 与其转去读博&#xff0c;倾向自学就业。 中国科学技术大学数学科学学院拥有一支优秀的师资团队&#xff0c;以下是部分教授的简介&#xff1a; 陈发来教授&#xff1a; 荣誉&#xff1a;2024年6月13日&#xff0c;在德国莱布尼茨信息科学中心召开的国际…...

Axure按钮设计分享:打造高效交互体验的六大按钮类型

在产品设计过程中&#xff0c;按钮作为用户与界面交互的核心元素&#xff0c;其设计质量直接影响用户体验与操作效率。Axure作为一款强大的原型设计工具&#xff0c;为设计师提供了丰富的按钮设计选项。本文将围绕基础按钮、禁用按钮、圆角按钮、动态按钮、渐变按钮和图标按钮六…...

MySQL 8.4企业版 安装和配置审计插件

在最新的MySQL 8.4.4企业版上启用审计日志功能 操作系统&#xff1a;Ubuntu 24.04 数据库:8.4.4-commercial for Linux on x86_64 (MySQL Enterprise Server - Commercial) 1.查看安装脚本 下面2个脚本位于mysql安装目录 share 下&#xff0c;一个是window一个是linux可以用…...

AI大模型学习十一:‌尝鲜ubuntu 25.04 桌面版私有化sealos cloud + devbox+minio,实战运行成功

一、说明 用了ubuntu 25.04&#xff0c;内核为GNU/Linux 6.14.0-15-generic x86_64&#xff0c;升级了部分image&#xff0c;过程曲折啊 sealos 能干啥 对集群生命周期进行管理&#xff0c;一键安装高可用 Kubernetes 集群&#xff0c;增删节点清理集群自恢复等 通过 sealos…...

idea无法下载源代码

通过idea找到用户设置文件路径 查看 setting.xml 文件&#xff0c;找到了以下相关的配置&#xff0c;注释掉这个maven-default-http-blocker的镜像&#xff0c;这个东西阻碍了去阿里的镜像库查找依赖&#xff0c;注释掉。 然后重启idea就能下载了...

【敏矽微ME32G030系列】介绍、环境搭建、工程测试

【敏矽微ME32G030系列】介绍、环境搭建、工程测试 本文介绍了敏矽微ME32G030系列单片机及开发板、包括参数特点、原理图、应用场景&#xff0c;以及开发环境搭建、工程测试等流程。 简介 本节介绍了开发板主控、特点、开发板原理图、板载资源等信息。 主控 开发板采用 ME3…...

Hooks的使用限制及原因

Hooks的使用限制及原因 Hooks的核心限制 只能在函数组件顶层调用 ⭐不能在条件语句、循环、嵌套函数中调用 ⭐只能在React函数组件或自定义Hooks中调用 ⭐ 为什么有这些限制&#xff1f; 根本原因&#xff1a;React依赖Hooks的调用顺序 React内部使用数组来存储每个组件的…...

【JavaScript】二十六、正则表达式

文章目录 1、正则表达式1.1 定义1.2 校验 2、元字符2.1 边界符2.2 量词2.3 字符类2.3.1 方括号[ ]2.3.2 小点.2.3.3 预定义 2.4 案例&#xff1a;用户名验证 3、修饰符3.1 语法3.2 案例&#xff1a;过滤敏感词 1、正则表达式 Regular Expression&#xff0c;正则表达式&#x…...

Geek强大的电脑卸载软件工具,免费下载

一款强大的卸载电脑软件工具,无需安装 免费下载...

tomcat Server 连接服务器 进展

由于机房的环境变更&#xff0c;所接触的问题也不一样&#xff01;&#xff01;&#xff01;&#xff01; 但后来出现以下提示&#xff1a; 已连接到服务器 配置错误: 部署源 springmvc:war 无效[2025-04-23 11:19:50,192] 工件 springmvc:war: 部署工件时出错。请参阅服务器日…...

Elasticsearch 集群节点下线方案

Elasticsearch 集群节点下线方案 在 Elasticsearch&#xff08;ES&#xff09;集群中&#xff0c;节点&#xff08;Node&#xff09;下线可能会影响数据的可用性和集群的健康状态。因此&#xff0c;正确的下线步骤需要确保数据不会丢失&#xff0c;并且不会影响查询或写入。 &…...

【模板匹配】图像处理(OpenCV)-part10

19.1模板匹配 模板匹配就是用模板图&#xff08;通常是一个小图&#xff09;在目标图像&#xff08;通常是一个比模板图大的图片&#xff09;中不断的滑动比较&#xff0c;通过某种比较方法来判断是否匹配成功,找到模板图所在的位置。 不会有边缘填充。 类似于卷积&#xff0c…...

VMware中CentOS 7虚拟机设置固定IP(NAT模式)完整教程

前言 在VMware中为CentOS 7虚拟机配置固定IP是搭建稳定服务环境的关键步骤。本文基于用户提供的最新配置文件&#xff0c;详细演示如何从DHCP自动获取IP调整为固定IP&#xff08;192.168.89.129&#xff09;&#xff0c;并提供修改前后的配置对比及操作验证。 一、当前配置状态…...

Ragflow、Dify、FastGPT、COZE核心差异对比与Ragflow的深度文档理解能力​​和​​全流程优化设计

一、Ragflow、Dify、FastGPT、COZE核心差异对比 以下从核心功能、目标用户、技术特性等维度对比四款工具的核心差异&#xff1a; 核心功能定位 • Ragflow&#xff1a;专注于深度文档理解的RAG引擎&#xff0c;擅长处理复杂格式&#xff08;PDF、扫描件、表格等&#xff09;的…...

飞帆控件:在编辑模式下额外加载的库

飞帆是一个自由的控件设计平台。在飞帆中&#xff0c;我们可以很方便地创建基于 Vue 2 组件的控件&#xff0c;并使用控件来搭建网页。 他山之石&#xff0c;可以攻玉。在创建控件中&#xff0c;使用 js 、css 依赖库能让我们的控件更强大。 有些时候&#xff0c;在编辑模式下…...

​​Agentic AI——当AI学会主动思考与决策,世界将如何被重塑?

一、引言&#xff1a;2025&#xff0c;Agentic AI的元年 “如果ChatGPT是AI的‘聊天时代’&#xff0c;那么2025年将开启AI的‘行动时代’。”——Global X Insights[1] 随着Agentic AI&#xff08;自主决策型人工智能&#xff09;的崛起&#xff0c;AI系统正从被动应答的“工具…...

68元撬动未来:明远智睿2351开发板重塑嵌入式开发生态

在嵌入式开发领域&#xff0c;价格与性能的矛盾始终存在&#xff1a;高端开发板功能强大但成本高昂&#xff0c;低价产品则往往受限于性能与扩展性。明远智睿2351开发板以68元&#xff08;含税&#xff09;的定价打破这一僵局&#xff0c;通过四核1.4G处理器、全功能Linux系统与…...

C# 全局 Mutex 是否需使用 `Global\` 前缀

回顾一下Mutex在Windows中的作用。Mutex是用于同步多个进程或线程的机制&#xff0c;确保同一时间只有一个实例访问资源。当创建Mutex时&#xff0c;如果命名时没有指定Global\前缀&#xff0c;默认可能是在会话内创建的&#xff0c;也就是只在当前用户会话中可见。这样的话&am…...

C# 中的 `lock` 关键字本质

C# 中的 lock 关键字本质上是基于 Monitor 类实现的线程同步机制&#xff0c;其核心是通过 互斥锁&#xff08;Mutex&#xff09; 确保代码块的原子性执行。以下是其实现本质的分步解析&#xff1a; 1. 语法糖的转换 当使用 lock 关键字时&#xff1a; lock (obj) {// 临界区…...

Java 集合:泛型、Set 集合及其实现类详解

参考资料:java入门到飞起 Java&#xff1b;泛型&#xff1b;Set 集合&#xff1b;TreeSet&#xff1b;HashSet&#xff1b;数据结构 一、引言 在 Java 编程中&#xff0c;集合框架是一个重要的组成部分&#xff0c;它提供了丰富的数据结构和算法来存储和操作数据。泛型与 Set…...

前端基础之《Vue(8)—内置组件》

一、Vue2.0中的内置组件 1、<slot> 插槽 2、<keep-alive> 动态组件 被keep-alive所包裹的组件&#xff1a; &#xff08;1&#xff09;不会被销毁。 &#xff08;2&#xff09;还会多两个生命周期钩子&#xff1a;activated()、deactivated()。 &#xff08;3&a…...

Zookeeper是什么?基于zookeeper实现分布式锁

zookeeper听的很多&#xff0c;但实际在应用开发中用的不错&#xff0c;主要是作为中间件配合使用的&#xff0c;例如&#xff1a;Kafka。 了解zk首先需要知道它的数据结构&#xff0c;可以想象为树、文件夹目录。每个节点有基本的信息&#xff0c;例如&#xff1a;创建时间、…...

计算机网络 第二章:应用层(四)

2.6 视频流和内容分发网 对如何在因特网中实现流行的视频流服务进行概述。它们的实现方式是使用应用层协议和以像高速缓存那样方式运行的服务器。 2.6.1 因特网视频 在流式存储视频应用中&#xff0c;基础的媒体是预先录制的视频&#xff0c;例如电影、电视节目、录制好的体育…...

什么是数据库的DDL和DML,有什么区别?

数据库中的 DDL 和 DML 是两类不同的 SQL 语言&#xff0c;用于不同的数据库操作目的。以下是它们的定义、区别和具体说明&#xff1a; 1. DDL&#xff08;Data Definition Language&#xff0c;数据定义语言&#xff09; 作用&#xff1a;定义或修改数据库的结构&#xff08;…...

HCIP实验二(OSPF网络配置与优化)

一.拓扑图与题目 1.R5为ISP&#xff0c;其上只能配置IP地址; R5与其他所有直连设备间均使用公有IP;环回地址为100.1.1.1/3 2.R4设备为企业出口路由器 3.整个0SPF环境IP基于172.16.0.0/16划分 4.所有设备均可访问R5的环回; 5.减少LSA的更新里&#xff0c;加快收敛&#xff0…...