自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 if-else 嵌套地狱”:责任链设计模式如何帮你理清复杂流程?

责任链模式我们在工作中,经常会遇到这种情况。对于不同的身份的人会有不同的处理。比如请假,学生请假向班主任提出申请,老师请假需要向年级组长申请,教导主任请假需要向校长申请。不同的身份,不同的处置流程。其实代码倒是没什么,用简单的if-else就能实现。但是今天并不是要强调这个,而是用一种新的设计模式,责任链。好,我们首先用从最简单的if-else开始,一开始不要求多好。能实现就行。我们这次用的案例是医院的案例。医院根据患者的病情进行分级诊断。

2025-07-19 00:03:56 564

原创 Springboot中的Shiro框架

** doGetAuthorizationInfo:权限校验* 获取用户权限信息*/@Override/** doGetAuthenticationInfo:认证校验*/@Override认证和授权的过程通常需要把这两个方法实现就可以。

2025-07-16 14:14:17 1268

原创 基于 Redisson 实现分布式系统下的接口限流

创建/*** 设置请求锁定时间(秒)*/

2025-07-12 22:45:26 697

原创 代码的隐形守护者:Spring AOP 是如何做到的?

Pointcut注解就像医院的「打针规则手册」,而execution 表达式// 例:拦截所有Controller中public方法的切点execution:「在打针动作执行时生效」(方法执行时触发);public :「不管是哪种针(肌肉针 / 静脉针),只要是公开给患者的操作」(任意返回值的 public 方法);:「只针对儿科诊室里的所有病床」(指定包下的所有类);*(..):「不管患者年龄、体重如何,只要是打针操作都算」(任意方法名,任意参数)。连接点。

2025-07-12 11:29:18 237

原创 【已解决】Bean named ‘elasticsearchTemplate‘ is expected to be of type ‘org.springframework.data.elastics

感觉很难说服我,为什么之前可以用。而且网上说过时的帖子都是2020年的,时间很明显超过我运行之前的时间。为什么会出现这种情况,我很困惑。这是什么问题导致的。我一直想着不动代码,修改。我很奇怪,为什么会出现这种错误?明明没有动代码,但是之前可以运行,网上说。项目中同时存在新旧版本的Spring Data Elasticsearch依赖。该异常表明Spring容器中存在类型不匹配的问题。自动配置与实际需要的模板类型不匹配。类型的bean,但实际找到的是。

2025-07-11 11:34:24 321

原创 SpringBoot 集成 FTP 与 SFTP 实战

这里用SFTP容易有个坑,可能你写的你能连接上,到了生产上连接不上。这个后续公众号会发,或者详细见我的csdn这篇文章https://blog.youkuaiyun.com/m0_58680378/article/details/147094033?参考: https://blog.youkuaiyun.com/qq_33204709/article/details/135974528。参考:https://bbs.huaweicloud.com/blogs/451602。

2025-07-10 17:58:51 815

原创 后端树形结构

基本思路是:首先从数据库中查询出所有的部门数据,然后找到所有根部门(即parent_id为 0 的部门),对于每个根部门,递归地查找它的子部门,将子部门添加到根部门的children列表中,直到所有部门都被正确添加到树形结构中。部门数据以树形结构存储,每个部门都有自己的上级部门(根部门的上级部门 ID 为 0),我们需要实现接口查询出扁平结构的部门列表以及树形结构的部门数据。在这个表结构中,id作为部门的唯一标识;在后端开发中,树形结构数据的查询和处理是一个常见的需求,比如部门管理、分类目录展示等场景。

2025-07-05 12:41:16 949

原创 工厂模式 vs 策略模式:设计模式中的 “创建者” 与 “决策者”

在传统的编程方式里,当我们需要使用某个对象时,就会直接使用new关键字去创建它,就好像我们自己亲手打造一个工具,打造完成后就能马上使用。但这种方式在项目规模变大、逻辑变复杂后,会带来很多问题,而工厂模式的出现就是为了解决这些问题。想象一下,我们在一个电子工厂里工作。你创造出了一个智能机器人,它有灵活的手臂(属性)和稳健的轮子(属性),能够高效地替你组装零件(方法)。在传统模式下,你创造出这个机器人后,就可以直接给它下达指令,让它开始工作。

2025-05-29 22:48:41 1391

原创 RabbitMQ 交换机不神秘!类比快递分拣中心,5 分钟搞懂消息路由规则

若在配置中开启 spring.rabbitmq.listener.simple.auto-startup=true(默认 true),Spring 会根据监听注解(如 @RabbitListener)自动创建队列。类比:同一家物流公司的多个快递员可以共享一条运输路线(连接),每个快递员负责不同区域的配送(信道),提高效率。消息会经过虚拟主机(Virtual Host)隔离,类似快递总站的不同分区(如“国内件区”和“国际件区”)。若自定义,则覆盖默认 Bean。

2025-05-27 14:22:32 1064

原创 ES(Elasticsearch) 基本概念(一)

倒排索引(Inverted Index)是搜索引擎最核心的数据结构,也是Elasticsearch实现高效全文搜索的基础。Elasticsearch作为当前最流行的开源搜索和分析引擎,广泛应用于日志分析、全文搜索、业务智能等领域。所有嵌套关系都使用 "type": "nested" 来确保数组中的对象被独立索引和查询。

2025-05-20 22:55:56 1366

原创 Mybatis解决以某个字段存在,批量更新,不存在批量插入(高效)(一)

1 | 张三 | 25 | zhangsan@new.com | 0 | ← 被更新。| 3 | 李四 | 35 | lisi@new.com | 1 | ← 新插入。| 4 | 王五 | 28 | wangwu@new.com | 1 | ← 新插入。| 1 | 张三 | 25 | zhangsan@old.com | 1 || 张三(25) | 匹配id=1的记录 |

2025-05-08 10:16:40 1202

原创 【已经解决】java.security.InvalidAlgorithmParameterException: Prime size must be multiple of 64

Caused by: com.jcraft.jsch.JSchException: Session.connect: java.security.InvalidAlgorithmParameterException: Prime size must be multiple of 64, and can only range from 512 to 2048 (inclusive)

2025-04-09 15:25:30 461

原创 如何使用nginx解决跨域或者如何解决地址跳转

如果直接安装出现缺少依赖,如下图所示。请先删除相关的文档,之后再重新安装。此时执行安装,如果还出现如下如图。2.安装相关依赖(非可选)检查配置文件信息是否正确。此时需要安装相关的依赖。

2025-02-20 12:46:04 335

原创 Arm架构部署zabbix

这里需要注意的是授权的数据库和可以访问的zabbix所在服务器访问的数据库的ip。zabbix_server服务及数据库对应信息。由于Arm架构的操作系统目前支持的少。password(输入密码)然后使用找到的路径替换。

2025-02-17 10:41:11 1141

原创 MySql离线指定目录安装

设置 mysql 客户端连接服务端时使用的 socket 文件。# MySQL 的 socket 文件路径,用于本地连接。# mysqld 服务的 PID 文件路径。# mysqld 服务启动日志文件路径。# 设置 mysql 客户端默认字符集。# 允许连接失败的次数,防止暴力破解。# 客户端连接时自动设置的字符集。将 MySQL 服务脚本复制到。4.定义/etc/my.cnf。# MySQL 服务运行的用户。# MySQL 服务监听的端口。# MySQL 的临时文件目录。# MySQL 的安装目录。

2025-02-17 10:39:41 648

原创 使用代理机器联网

【代码】使用代理机器联网。

2025-02-17 10:33:47 575

原创 服务器设置路由转发

此时虚拟机会虚拟生成一张网卡VMware Network Adapter VMnet8网卡,这张网卡有两个功能一个功能是作为一个网桥,将宿主机和虚拟机两个不同网段的网络进行连接。虚拟机是不能通过网桥访问到主机的网卡的,他们走的路线是:虚拟机->VMnet8虚拟机交换机->虚拟NAT设备->主机网卡->主机。本文章主要讲解如何通过方案二如何实现A电脑如何进行转发数据包,实现B,C,D局域网上的主机可以通过A可以进行连接外网。A服务器有公网,b,c,d没有公网,A,B,C,D之间可以相互通信。

2025-02-12 23:08:31 917

原创 如何理解Lambda表达式

在疯狂java讲义中,这么写到:Lambda表达式允许使用更简洁的代码来创建只有一个抽象方法的接口(这种接口被称为函数式接口的实例。一个注解,Java 8专门为函数式接口提供了@FunctionalInterface注解, 该注解通常放在接口定义前面,该注解对程序功能没有任何作用,它用于告诉编译器执行更严格检查—检查该接口必须是函数式接口(也是就是说里面只有一个抽象方法),否则编译器就会报错。并不是所有匿名内部类都可以这样简化,匿名内部类只有一个抽象方法的匿名内部类可以这样进行简化的操作。

2024-08-15 23:50:18 905 1

原创 部署kafka集群遇到的问题?以及出现错误ERROR Fatal error during KafkaServer startup. Prepare to shutdown (kafka.server

问题是一开始,启动了kafka,输入jps,也显示成功启动了。后面我就不想解决了,心里想着既然是内存的问题,那我操作也没用,改内存吧。这完全是思维上的懒惰。问题的根本原因是 zookeeper 数据存储在临时文件夹中,而 Kafka 日志存储在持久文件夹中,反之亦然。系统重启后,由于 Kafka 集群的全新注册,存储在该临时目录中的文件将被清理,并生成一个新的集群 ID。我的理解是,是重新关机之后,重启服务器,系统会删除临时文件,你配置的时候没有更改配置文件的输出目录,导致一个被删除了,一个没有删除。

2024-08-09 18:03:44 1703 1

原创 如何部署kafka,以及kafka集群?

解压之后把他放到你想要安装的位置:这里我放到/usr/local/kafka/,可能需要超级用户的权限,使用sudo su切换到超级用下进行操作进行。下面的服务器的启动,包括配置文件的修改都会用到超级用户的权限,这里我不在重复。方法有很多种,这里我的建议是自己下载,然后上传服务器。接下来第3台,第4台都是同样的操作,复制配置文件,修改id,端口,日志文件名字。这里我们用vim编辑器进行修改,其他方式也行,记得超级用户权限,已经切换过,不用管。按下键盘上的字母i进行修改,否则无法进行修改。

2024-08-09 15:15:09 540 2

原创 Java异常处理

异常在Java中还是比较重要的,在工作中经常需要用到。今天整理一波来复习异常。参考:《疯狂Java讲义》

2024-08-08 01:09:32 1500

原创 Java匿名内部类实战

再定义一个学生类,里面有个Clock方法。后续传递不同Bell继承的接口,或者其实现类。主要的是为了复习匿名内部类的实战。前提知识:匿名内部类,接口的多态。或者翻看我的主页观看后续会不会,上传文章。这里我的bell实参他是一个匿名类,没有名字,系统会自动分配一个名字给他,他实现了接口中的ring方法,因此接下来能调用ring方法。并且在Clock中通过一个接口调用自己的接口的方法声明。这样说还是一头雾水。这里定义了一个闹钟接口,闹钟的结口里面有个ring方法的声明。匿名内部常用于传递参数,更加的方面高效。

2024-08-06 23:40:40 287

原创 如何理解插入排序?及其应用场景

插入排序你真的了解了吗?他们的应用场景是哪里?

2024-05-24 00:34:34 505

原创 如何判断数独有效

【题目】来源于力扣请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。(请参考示例图)注意:一个有效的数独(部分已被填充)不一定是可解的。只需要根据以上规则,验证已经填入的数字是否有效即可。空白格用 ‘.’ 表示。

2023-06-14 01:41:30 707

原创 顺序容器(一)

*以下内容参考。

2023-06-12 21:54:27 85

原创 # Vector

以下内容参<<c++ primer >>这本书。

2023-06-11 20:20:51 103 1

原创 哈希表(散列表)

我们希望查找数据,能够像访问数组那样,能够随时随地的查找到第几个元素。也就是希望能够给一个关键字,查找的它的时间是o(1)也就是说,我们需要通过某个函数f,使得存储位置 = f (关键字)通过这样的转换,我们就不需要通过关键字进行比对寻找,直接通过位置寻找。使得关键字和存储位置一一对应。有点儿像python中的字典。

2023-06-11 17:02:13 120 1

转载 两数之和哈希方法

是一个在 C 语言中实现的高效哈希表的库,它提供了一组宏来操作哈希表。解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1]。此时找到2,target-num[i]=6,6在map中。此时找到3,target-nums[i]=5,5不在map中,将其存入。输入:nums = [2,7,11,15], target = 9。此时找到8,target-num[i]=0,0不在map中,存入。输入:nums = [3,2,4], target = 6。此时找到6,6不在map中,存入。

2023-06-11 16:11:28 138 1

原创 哈希表(散列表)

哈希表(散列表)

2023-06-11 12:33:18 138 1

原创 Makefile文件很简单

你可能觉得这样做很麻烦,还不如gcc fun1.o fun2.o fun3.o main.o -o app解决问题。编译只会修改main.c的内容。这是因为,我开始的时候,第一行使用的是app:fun1.o fun2.o fun3.o main.o。我来解释下这个串代码,首先执行了gcc -c fun1.c -o fun1.o,后面依次执行,最后才执行了gcc fun1.o fun2.o fun3.o main.o -o app。这个程序执行需要fun1.c,fun2.c,fun3.c ,main.c。

2023-06-10 00:22:56 150 2

原创 数据结构笔记

定义: 有序线性表的特征:前驱后既唯一数据域:指针域:链表:n个结点由指针链存储映像,头指针:头结点:便于首元结点的处理便于空表和非空表的统一处理头结点的数据域内装的是什么?数据可以为空,也可以存放线性表长度等附加信息,但此结点不能计入链表长度值无头结点时,头指针为空有头结点时,当头节点的指针域为空时表示空表结点在存存储器中的位置是任意的,即逻辑上相邻的数据元素在物理上不一定相邻。

2023-06-06 10:40:53 196

原创 c++容器真的很简单,你学废了吗?

以下内容参考c++ primer 和c++ primer,没法子。学计算机,一定要有个非常强大的心理状态。计算机的所有的东西,都是人做出来的,别人能想出来的,我也一定能想出来,在计算机里面,没有任何黑魔法,所有的东西只不过我现在不知道,总有一天,我会把里面所有细节,所有内部东西全都搞明白。------浙江大学翁恺

2022-09-20 14:19:43 469 3

原创 一分钟学会分文件

你真的学会了份文件吗

2022-07-01 00:02:44 322 3

合肥大学大一c语言课程论文

合肥学院大一c语言课程论文

2023-06-06

空空如也

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

TA关注的人

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