自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 Ubuntu22.04安装docker最新教程,包含安装自动脚本

本文详细介绍了在Ubuntu系统中安装Docker CE的完整步骤: 首先可卸载旧版本Docker 更新apt并安装必要依赖 添加Docker官方GPG密钥(使用阿里云镜像) 配置Docker软件源 安装Docker及其组件 验证安装结果 提供自动化安装脚本,支持一键执行 重点说明了密钥管理的重要性,并提供了使用阿里云镜像加速下载的方法。最后包含完整的shell脚本,可简化安装流程。安装完成后可通过docker --version和hello-world容器验证安装是否成功。

2025-08-19 22:27:42 334

原创 使用Pycharm集成开发工具远程调试部署在虚拟机上的flask项目:超级详细的完整指南

本文介绍了使用PyCharm远程调试虚拟机(Ubuntu)中Flask项目的详细步骤。主要内容包括:1)配置VMware NAT网络确保虚拟机IP与子网一致;2)在PyCharm中添加远程Python解释器,连接虚拟机SSH账户;3)设置项目同步路径,使用SFTP工具实现本地与虚拟机项目文件同步;4)解决权限问题(勾选sudo选项)和包依赖管理。该方法适用于需要在接近生产环境调试的场景,需注意防火墙设置和端口访问权限等细节。

2025-07-12 16:30:15 452

原创 微服务之短信验证服务配置完后junit单元测试短信发送失败

主要是版本冲突问题,具体报错与解决方法如下:报错前:启动失败短信服务测试报错:解决后:启动成功短信服务测试发送成功:在使用 SpringBoot 开发时,我们经常会引入各种依赖以满足功能需求。然而,依赖版本不一致的问题可能会导致一些复杂的错误。最近在项目中,我遇到了一个典型的 NoClassDefFoundError 问题,经过排查发现其根本原因是依赖版本冲突。

2024-11-29 01:21:01 913 1

原创 Redisson的可重入锁

在可重入锁的情况下,需要释放与请求次数相同的次数,线程 1 完全释放锁后,锁恢复到初始状态。在持有锁的情况下,线程 1 再次请求锁,展示了可重入锁的特性——线程可以在持有锁的情况下重新进入锁区域而不会阻塞。当线程 1 持有锁时,线程 2 试图获取锁但被阻塞,进入等待状态。线程 1 完全释放锁后,锁恢复为初始状态,线程 2 能够获取锁,进入受保护的代码区域。表示系统或资源在没有线程持有锁的情况下的状态,任何线程都可以尝试获取锁。线程 2 完成任务后,释放锁,系统回到初始状态,其他线程可以尝试获取锁。

2024-11-14 17:09:43 759 1

原创 Linux下docker中elasticsearch与kibana的安装

在本篇博客中,我将详细介绍如何在 Linux 系统中安装并配置 Elasticsearch 和 Kibana,这两者是 ELK 堆栈的重要组成部分,用于日志分析、数据搜索、可视化等场景。

2024-10-28 13:35:56 847 2

原创 基于 Postman 和 Elasticsearch 测试乐观锁的操作流程

在分布式系统中,多个并发操作对同一资源的修改可能导致数据不一致。为了解决这种问题,Elasticsearch 提供了乐观锁(Optimistic Locking)机制,通过控制文档的 _seq_no 和 _primary_term 来确保更新的原子性。本文将通过 Postman 对 Elasticsearch 进行一次乐观锁机制的测试,模拟多个并发请求对同一文档的操作场景。

2024-10-27 21:41:10 998 1

原创 git进行版本控制,push遇到Push cannot contain secrets,即上传文件包含密匙类敏感数据解决方法。

在项目开发过程中,难免会遇到把敏感信息(如API keys、密码、或私密文件)错误提交到Git仓库的情况(一开始推送gitee没提醒我含密匙数据,但是github提醒了我)。为了避免这些敏感信息泄露,我们需要从Git历史记录中彻底删除它们。本文介绍两种主流的方式来删除敏感信息,一种是使用 filter-repo 工具,另一种是通过修改 .gitignore 文件避免再次提交,此外还会介绍官网文档中提供的其他方法。

2024-10-17 22:33:35 1466 1

原创 nginx负载均衡与动静分离

分别准备两台虚拟机,一台负责使用nginx进行负载均衡控制与动静分离,另一台则部署两个tomcat接收服务请求。

2024-09-07 01:10:34 570

原创 Nginx代理Tomcat出现(13:Permission denied) while connecting to upstream, client:192.168.xxx...可能的错误解决方法

在我当前的开发环境中,使用了 Nginx 作为反向代理来转发请求到 Tomcat 服务器。整个环境运行在一台 Windows 宿主机上,通过 VMware 虚拟机运行 Linux 系统,Nginx 和 Tomcat 均部署在该虚拟机中。网络配置采用 NAT 模式,使得宿主机可以通过映射的端口访问虚拟机内的服务。

2024-09-04 00:56:26 1607

原创 安装与配置 Tengine 及自动脚本

Tengine 是一个基于 Nginx 的高性能 Web 服务器。本文将介绍如何下载、安装 Tengine,并配置自动启动脚本,使其在系统启动时自动运行。

2024-07-28 22:08:09 2797

原创 xshell连接linux“ssh拒绝了密码 请再试一次”解决方法之一

检查防火墙

2024-07-27 10:41:28 2017

原创 idea2021版本SpringBoot项目部署,pom包没报错,但是导包爆红解决办法

如果pom.xml中没有报错,但是注解和依然显示错误,这通常意味着项目配置、IDE 缓存或构建工具之间可能存在问题。

2024-06-25 23:58:54 1187 1

原创 ssm项目开发的版本兼容问题

以下是 Maven 兼容的 Spring 版本以及 Tomcat 和 JDK 的版本:

2024-04-21 12:52:44 328 1

原创 JAVA—— ——各种类型的代码块

类的组成:属性,方法,构造器,,内部类,同步块(多线程)静态代码块在Java中是一种特殊的代码结构,它使用static关键字修饰,并用一对大括号{}包围起来。

2024-01-04 11:58:40 538 1

原创 JAVA————面向接口编程的思想

面向接口编程(Interface Oriented Programming,IOP)是一种编程思想,它强调的是在设计软件应用时,应该先定义接口,然后再实现接口12。无论你的鼠标是有线的还是无线的,只要它们都符合这个USB接口的标准,就可以通过这个插口连接到电脑上。这样,无论myPet是Dog还是Cat,我们都可以通过相同的方式来调用eat和sleep方法,因为这两个方法都是在Animal接口中定义的4。这样,当我们在编程时,就可以针对接口编程,而不是针对具体的类。

2023-12-26 16:31:37 1251 1

原创 11.模板

如果某个源文件中的函数在其。

2023-08-18 12:54:03 155 2

原创 07.string

在c语言中,字符串是以’\0’为结尾的字符集合,并且c语言库中也包含对字符串操作的一些库函数,但是相比于c++的string,这些函数都是相对独立的,缺乏面向对象(oop)的特性,并且底层空间需要自己维护,容易引发越界问题。

2023-08-04 16:11:41 122 2

原创 06.c++模板初阶

/template<class T1, class T2, ..., class Tn> class //类模板名 {// 类内成员定义 };// 动态顺序表 // 注意:Vector不是具体的类,是编译器根据被实例化的类型生成具体类的模具 template < class T > class Vector {public :} // 使用析构函数演示:在类中声明,在类外定义。~ Vector();T * _pData;

2023-07-16 00:41:03 107 1

原创 05.内存管理

new的原理调用operator new函数申请空间。在申请的空间上执行构造函数,完成对象的构造。delete的原理在空间上执行析构函数,完成对象中资源的清理工作调用operator delete函数释放对象的空间new T[N]的原理调用operator new[]函数,在operator new[]中实际调用operator new函数完成N个对象空间的申请在申请的空间上执行N次构造函数delete[N]的原理在释放的对象空间上执行N次析构函数,完成N个对象中资源的清理。

2023-07-14 16:19:29 103 1

原创 04.c++类与对象(下)

c.自定义类型成员(同时在该类中没有默认构造函数时)1.每个成员变量只能初始化一次。b.const成员变量。初始化列表需要注意的是。

2023-07-07 23:48:55 133 3

原创 03.c++类与对象(中)

当我们的一个类中什么都不写的时候,我们将其称为,空类看似什么都没有,其实编译器会生成以下6个默认成员函数。

2023-07-03 23:59:28 117 1

原创 02.c++类与对象(上)

/类体:由成员函数和成员变量组成//一定要加分号class为定义类的关键字,ClassName为类的名字,{}中为类的主体,注意类定义结束时后面分号不能省略。类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的方法或者成员函数。类的两种定义方式:1. 声明和定义全部放在类体中,需注意:成员函数如果在类中定义,编译器可能会将其当成内联函数处理。

2023-06-28 01:05:27 145 1

原创 01.c++入门

在C/C++中,变量、函数和后面要学到的类都是大量存在的,这些变量、函数和类的名称将都存在于全局作 用域中,可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字 污染,namespace关键字的出现就是针对这种问题的。//3同一个工程中,允许存在多个相同名称的命名空间,编译器最后会合成同一个命名空间中。//命名空间中的内容,既可以定义变量,也可以定义函数。//需要注意的是一个命名空间相当于定义了一个新的作用域。//命名空间嵌套的需求:命名空间内也可能冲突。

2023-06-23 22:48:13 182 1

原创 详解两数相加(C语言实现)

分别从两个链表的起始位置开始相加进位,往后遍历,若其中一个链表先访问到空,则开始为其后面的值赋值0;设置进位carry,初始为0,循环条件为l1,l2不为空,且carry不为0(因为最后一位相加大于十,需要进1,仍然需要为返回链表添加一个节点),这里需要知道的是,两链表元素相加,最大都不可能为20。给你两个 非空 的链表,表示两个非负的整数。再创建一个结构体指针cur指向dummy(起始位置),cur用来指向要存的下一个节点地址;著作权归领扣网络所有。请你将两个数相加,并以相同形式返回一个表示和的链表。

2023-06-03 18:29:05 1309 1

原创 期末考试之贪吃蛇项目实践(vs2022完美运行)><

下面是一个简单的代码示例,可以作为一个基础框架来构建更复杂的贪吃蛇游戏。2. 当蛇头碰到食物时,增加分数并生成新的食物,否则蛇向前移动一格。3. 检查蛇是否碰到了墙或自己的身体,如果是则游戏结束。4. 处理用户的输入,使蛇能够改变方向。1. 初始化游戏界面和蛇的初始状态。// 初始化蛇和食物的位置。// 检查是否碰到食物。

2023-04-15 18:10:10 1264 4

原创 C语言初学者必备的学习方法与技巧

对于初学者而言,掌握好C语言对于未来的编程生涯具有非常关键的作用,可以帮助他们打下坚实的基础。在学习的过程中,寻找优秀的C语言学习资源也是非常必要的。通过寻找合适的学习资源,可以帮助初学者更好地理解C语言的知识点,快速提高自己的水平。除了利用网络上的学习资源,还可以通过加入学习交流群和板块来获取与C语言相关的信息。在学习C语言之前,需要提前规划好自己的学习进度。总结:以上是初学C语言者需要了解的一些C语言学习方法和技巧,多动手多练习,结合各种学习资源,不断探索和总结,相信会在学习过程中取得不错的进步。

2023-04-14 01:37:39 553 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除