- 博客(96)
- 收藏
- 关注
原创 Java进阶06List集合&泛型
在内存中不是连续的,每个结点有自己的存储地址,包含其存储的具体数据值和下一个结点的地址。见名知义,单链表即链接方向是单向的,对链表的访问要通过顺序读取从头部开始。**注意:**next()方法每调用一次,迭代器指针会后移一位,就会把不同集合元素的信息拼接到一起打印,为了避免这种信息错乱,增强for循环是JDK5之后出现的,其内部原理就是一个Iterator迭代器,它简化迭代器的代码书写,是迭代器遍历的语法糖。接口中的某个抽象方法确定不了参数的具体类型,就可以声明泛型,让该方法的泛型去匹配接口的泛型。
2026-01-07 22:58:56
623
原创 IP地址、子网掩码(NETMASK)和网关(Gateway)
IP地址、子网掩码(NETMASK)和网关(Gateway)是计算机网络中用于定位和通信的关键元素。
2026-01-07 22:11:43
225
原创 Flask-SocketIO,一个高效的 Python WebSocket 库!
是一个基于Flask框架的扩展库,专门用于实现实时通讯。传统的HTTP协议是“请求-响应”模式,服务器只能在客户端请求后进行响应,而WebSocket可以让服务器主动推送数据给客户端,实现双向实时通信。Flask-SocketIO不仅支持WebSocket,还支持长轮询等多种通信方式,它会自动选择最佳方式,不用我们手动配置。除了message,我们可以定义更多自定义事件,帮助实现更细化的实时功能。例如,可以定义一个事件专门用于发送通知。def?????data)????data,?:发送通知事件。
2026-01-07 21:52:26
729
原创 CVE-2024-38819:Spring 框架路径遍历 PoC 漏洞复现
注意在创建的时候有些镜像无法拉取到,可以在Dockerfile文件中修改配置使用其他的镜像。: 通过创建符号链接,攻击者可以尝试构造一个路径遍历的恶意 URL。该漏洞利用了路径遍历问题,使攻击者能够访问系统中本不应暴露的文件(如。攻击者能够进一步利用该信息来获取其他敏感数据或执行任意代码。这段代码创建了一个静态文件资源的路由。目录“跳出”并访问系统的其他目录(如。来尝试获取指向其他系统路径的文件。拿到环境的源码使用docker搭建。文件的内容,证明存在该漏洞。),从而获取系统敏感信息。
2026-01-07 21:34:30
199
原创 大厂Java进阶面试解析笔记文档
在这分享一份整理了2个月的Java进阶面试解析笔记文档,包括了知识点笔记和高频面试问题解析及部分知识点视频讲解给大家!Java 基础(JVM 内存布局、GC 并发、集合、反射、网络、设计模式)对于技术人,尤其是 Java人来说,到底需要掌握什么技术才能通过筛选呢?架构(容器、注册中心、配置中心、消息中间件、缓存、任务调度)解决方案 (分库分表、分布式事物、秒杀抢购、发布部署)面试注意点 (面试流程、思考方式、其他注意点)Spring系列面试题解析及源码视频讲解。Java基础及Java集合面试题解析。
2025-12-01 22:12:18
202
原创 【Springboot】@Autowired和@Resource的区别
Resource 和@Autowired 这两个注解的作用都是在Spring 生态里面去实现Bean 的依赖注入。
2025-12-01 20:10:43
871
原创 SQL 实战:复杂数据去重与唯一值提取
在实际开发中,数据重复是常见问题,例如用户多次登录记录、订单状态重复更新等。如何高效提取符合业务需求的唯一值或最新记录,对系统性能和数据准确性至关重要。本文将探讨如何使用 SQL 的以及 DISTINCT实现复杂场景下的数据去重与唯一值提取,避免重复数据干扰业务分析。函数/技术说明示例去除重复行,返回唯一记录按指定列分组,返回每组的聚合结果窗口函数,为每组记录编号,通常用于去重或排名类似,但排名相同记录具有相同序号连续排名,不跳跃。
2025-12-01 17:57:45
834
原创 SpringBoot中整合RabbitMQ(测试+部署上线 最完整)
RabbitMQ服务端是由并发式语言Erlang编写的,所以安装RabbitMQ的之前需要安装Erlang,保证所需要的环境。注意:这里没有下载的版本,下载需要与自己的版本一致,如果发现启动不了RabbitMQ,请看后面的启动RabbitMQ。由于目前是测试阶段,这里我使用之前学习的时候的版本。
2025-11-30 21:25:04
692
原创 redis清理缓存
到这里就清除缓存完毕了,不需要重启redis,不过值得注意的是,你们服务器的缓存数据是否重要,是否可以全部清除,一定要确定清楚了以后才执行清空缓存的命令,如果不确定能不能清除,最好先确定了以后才清楚,否则不要轻易清除。如果你们的项目用到redis啦,虽然设置了过期时间,但有时候修改bug,仍然需要及时清空缓存,去读数据库的数据,所以这篇文章讲解如何清除redis的缓存。到这里就清除完毕,不需要重启,不过大家要注意,你们服务器的缓存数据是否重要,是否可以清除,一定要确定清楚,否则不要轻易清除。
2025-11-30 18:45:14
338
原创 MySQL远程连接错误解决:“Host is not allowed to connect to this MySQL server”详解
用户的host字段(或其他需要远程访问的用户),允许任意远程主机(用 ‘%’ 表示)进行连接,但这一步可能涉及到安全风险,建议只针对需要远程访问的特定用户设置具体的远程IP地址,而不是使用通配符。通过远程客户端访问MySQL服务器时会遇到“Host is not allowed to connect to this MySQL server”的错误提示。确保服务器的防火墙规则允许MySQL服务端口(默认为3306)上的入站流量。或者指定的公网IP地址以接受远程连接。),确保没有禁止远程连接的相关设置,
2025-11-30 16:48:04
196
原创 Linux下安装Redis
将mkreleasehdr.sh、redis-benchmark、redis-check-aof、redis-cli、redis-server 移动到 /usr/local/redis-5.0.0/bin/ 目录下。(2).把 redis.conf配置文件中的 bind 127.0.0.1 这一行给注释掉,这里的bind指的是只有指定的网段才能远程访问这个redis,注释掉后,就没有这个限制了。进入到 /usr/local/redis-5.0.0/ 目录下,进行编译与安装。
2025-11-30 14:52:47
288
原创 【玩转全栈】----Django模板语法、请求与响应
像之前那个页面,太过简陋,而且一个完整的页面,也不可能只用HttpResponse返回文本,这就可以用django的模板语法,模板语法相当于将前后端分离了,前端专写页面,写成一个html文件,然后后端在视图函数中可以通过渲染(render)将前端的html文件渲染为HTTP响应。这里的用户名和密码是自己设置的,一般来说,用户名和密码是不会出现在代码中的,容易泄露,可以存放于数据库中,但我图方便就先这样了,后面再出一个完整的Django和Mysql连接的博客。提交的查询参数的一个对象。
2025-11-30 01:15:19
778
原创 Spring Boot实现多数据源连接和切换
在 Spring Boot 中实现多数据源连接和切换,可以通过以下几种方案来实现,具体取决于项目的需求、数据库的使用模式和管理的复杂性。以下是一个常见的多数据源切换的实现方案,使用 AbstractRoutingDataSource 来动态选择数据源。创建一个自定义注解,用于指定当前方法执行时需要使用的数据源。// 数据源标识,默认使用primary数据源数据源配置:为每个数据源配置DataSourceBean。动态数据源路由:使用来实现动态切换数据源。ThreadLocal存储:使用。
2025-11-29 19:57:57
273
原创 MySQL远程连接错误解决:“Host is not allowed to connect to this MySQL server”详解
用户的host字段(或其他需要远程访问的用户),允许任意远程主机(用 ‘%’ 表示)进行连接,但这一步可能涉及到安全风险,建议只针对需要远程访问的特定用户设置具体的远程IP地址,而不是使用通配符。通过远程客户端访问MySQL服务器时会遇到“Host is not allowed to connect to this MySQL server”的错误提示。确保服务器的防火墙规则允许MySQL服务端口(默认为3306)上的入站流量。或者指定的公网IP地址以接受远程连接。),确保没有禁止远程连接的相关设置,
2025-11-29 17:17:42
283
原创 Java_ElasticSearch(ES)——分布式搜索引擎
Elasticsearch是一个开源的分布式搜索和分析引擎,最初由Elastic公司开发。它构建在Apache Lucene搜索引擎库之上,提供了一个强大的全文搜索和分析引擎,它结合kibana、Logstash、Beats,是一整套技术栈,被叫做ELK,适用于各种用例,包括文本搜索、日志分析、实时数据分析、监控和报警等。上述配置文件即表示添加扩展词典ext.dic,它就会在当前配置文件所在的目录中找这个文件。这种方式在文档id不存在时,就会相当于一个新增操作。
2025-11-29 14:38:57
744
原创 解决报错net.sf.jsqlparser.statement.select.SelectBody
然后我的因为我的这个模块使用了mybatisplus的分页插件,和这个Spring依赖里面的分页产生了冲突,所以定位到问题之后我们就可以直接去排除这个依赖就行了。而这个报错,是告诉我们的分页依赖冲突,要加个jsqlparser依赖来解决这个冲突,也相当于平衡,但是可能因为我们版本的不匹配,还是会报错,例如下面这样。但是我们是不知道到底是什么依赖冲突的,这个时候就会用到一个工具,一个idea的插件 Maven Helper。当我们安装这个插件是,就可以在pom里面看见这个。
2025-11-29 04:16:21
243
原创 一文读懂Ingress-Nginx以及实践攻略
Ingress是Kubernetes的 一种 API 对象,用于管理集群内服务的外部访问。Ingress 可以提供从集群外部到集群内Service的 HTTP 和 HTTPS 路由,并可以基于域名、路径等规则将请求转发到集群内的Service上。Ingress nginx是 Kubernetes 中最常用的 Ingress 控制器之一,由 NGINX 官方提供支持(备注:nginx和k8s官方各自维护了一套 nginx ingress controller是 NGINX 和 NGINX Plus 的。
2025-11-29 01:43:08
408
原创 SQLMAP的下载安装和使用(Windows)
SQLMAP是一种开源渗透测试工具,可自动执行SQL注入缺陷的检测和注入过程,并接管数据库服务器。它有强大的检测引擎,针对不同类型的数据库提供多样的渗透测试功能选项,实现数据库识别、数据获取、访问DBMS操作系统甚至通过带外数据连接的方式执行操作系统的命令,以及从数据库指纹识别、从数据库获取数据、 通过带外连接在操作系统上执行命令。
2025-11-28 23:08:49
246
原创 Spring Boot(七):Swagger 接口文档
Swagger 是一款 RESTful 风格的接口文档在线自动生成 + 功能测试功能软件。Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。目标是使客户端和文件系统作为服务器以同样的速度(同步)更新文件的方法,参数和模型紧密集成到服务器。这个解释简单点来讲就是说,Swagger 是一款可以根据 resutful 风格生成的接口开发文档,API 文档与 API 同步更新,并且支持做测试的一款中间软件。
2025-11-28 20:22:00
504
原创 Neo4j图数据库学习(二)——SpringBoot整合Neo4j
本文介绍如何通过SpringBoot整合Neo4j的方式,对图数据库进行简单的操作。Neo4j和SpringBoot的知识不再赘述。Neo4j图数据库学习(一)——初识CQL由于作者的水平非常有限,难免会出现错误,欢迎各位指正!假如您有任何想法,也欢迎交流!
2025-11-28 17:44:58
363
原创 Java_ElasticSearch(ES)——分布式搜索引擎
Elasticsearch是一个开源的分布式搜索和分析引擎,最初由Elastic公司开发。它构建在Apache Lucene搜索引擎库之上,提供了一个强大的全文搜索和分析引擎,它结合kibana、Logstash、Beats,是一整套技术栈,被叫做ELK,适用于各种用例,包括文本搜索、日志分析、实时数据分析、监控和报警等。上述配置文件即表示添加扩展词典ext.dic,它就会在当前配置文件所在的目录中找这个文件。这种方式在文档id不存在时,就会相当于一个新增操作。
2025-11-27 10:36:09
279
原创 五大消息模型介绍(RabbitMQ 详细注释版)
1.simple消息模型一个生产者 一个队列 一个消费者在此种消费模型下,若消费者对消息的处理速度较慢。那么当生产者不断向队列发送消息时,便会造成堵塞。2.work消息模型一个生产者 一个队列 多个消费者由此模型衍生的 -> 能者多劳:消费者性能高的可以多消费消息3. fanout消息模型一个生产者 一个交换机 多个队列 多个消费者这种模型下,生产着会将消息发送至交换机。再由交换机以广播的形式发送给所有消费者,由消费者在自己相应的队列获取消息。这种模型存在一个缺点,就是无法对消息进行过滤。
2025-11-26 22:17:25
402
原创 【MySQL数据库】Ubuntu下的mysql
所谓安装数据库服务器,只是在机器上安装了一个数据库管理系统程序,这个管理程序可以管理多个用户建立的数据库,一般开发人员会针对每一个应用创建一个数据库,而为保存应用中实体的数据,一般会在数据库中创建多个表结构,以保存程序中实体的数据。输入“ help ” 或 “ h ” 获取MYSQL基础命令帮助,例如:clear清除当前输入的指令,quit退出mysql等。:这是MySQL服务器的主要配置段,大部分与服务相关的设置都在这里,包括数据存储路径、缓冲池大小、线程数、日志设置等。在Ubuntu系统下,使用。
2025-11-26 21:08:26
345
原创 Ubuntu 20.04配置网络
下一步,点击网络图标,这个地方有的同学,可能会出现没有网络图标。选择网络适配器,这里可以通过反复拔插我们连接的拓展块,这样就能确认名称了。进入之后,选择添加网络,选择添加网络,这里可以随便选一个上面没有的。选择好之后,我们要确认一下插入的设备的名称。打开虚拟机,插入水晶头网线后,电脑上会弹出显示,选择连接到主机。下面我们进入到虚拟机,点击上面的编辑->虚拟网络编辑。最终确认好以后,也不要忘了选择弹窗,连接到主机哦。这里改个名字,添加,然后选择到这个配置就行了。2,接下来进入正题,我们开始配置网络。
2025-11-26 19:59:06
380
原创 SpringCloud系列教程:微服务的未来 (五)枚举处理器、JSON处理器、分页插件实现
在现代 Java 开发中,我们常常需要处理各种通用的功能和需求,诸如枚举的处理、JSON 数据处理,以及分页查询等。这些功能虽然看似简单,但在实际开发中往往涉及到许多细节和优化。为了提高开发效率、减少重复代码的编写,我们通常会通过封装和抽象这些功能,形成易于复用和维护的工具类或组件。这篇博客中,我们详细介绍了如何实现并优化三个常见的功能处理器:枚举处理器、JSON 处理器和分页插件。这些技术的合理封装和应用,不仅能让我们的代码更加高效、简洁,还能有效地提升系统的可维护性。
2025-11-26 18:47:49
424
原创 springboot 异步操作
future.get()` 和 `future.join()` 都是用于处理并发编程中异步任务的结果,但它们属于不同的编程框架或库,并且具有不同的用途和行为。- **库**: Java 的 `Thread` 类或 Kotlin 的协程(`join()` 在 Kotlin 协程中表现为 `await()`)。- 在 Java 中,`thread.join()` 会使当前线程(调用 `join()` 的线程)等待,直到目标线程终止。- `join()` 是 Java 线程的方法,用于等待一个线程完成。
2025-11-26 17:37:36
300
原创 使用 Canal 实时从 MySql 向其它库同步数据
目前绝大多数项目还是采用 mysql 作为数据存储,对于用户访问量较高的网站来说,mysql 读写性能有限,我们通常会把 mysql 中的数据实时同步到 Redis、mongodb、elastic search 等中间件中,应对高并发访问场景,减轻 mysql 压力,防止数据库宕机。在项目开发中,为了不会原有代码进行侵入,采用 canal 中间件实现 mysql 向其它库的实时同步,是一种很不错的方案。
2025-11-25 16:21:15
331
原创 【prometheus】监控MySQL并实现可视化
mysqld_exporter 是一个用于监控 MySQL 服务器的开源工具,它是由 Prometheus 社区维护的一个官方 Exporter。该工具通过连接到 MySQL 服务器并执行各种查询来收集关于 MySQL 服务器性能和状态的指标,并将这些指标暴露给 Prometheus 监控系统。mysqld_exporter 通过执行 SQL 查询来收集关于 MySQL 服务器的各种指标,包括查询性能、连接状态、InnoDB 状态、复制状态等。Prometheus 兼容。
2025-11-25 15:12:08
243
原创 Vllm进行Qwen2-vl部署(包含单卡多卡部署及爬虫请求)
阿里云于今年9月宣布开源第二代视觉语言模型Qwen2-VL,包括 2B、7B、72B三个尺寸及其量化版本模型。Qwen2-VL具备完整图像、多语言的理解能力,性能强劲。相比上代模型,Qwen2-VL 的基础性能全面提升,可以读懂不同分辨率和不同长宽比的图片,在 DocVQA、RealWorldQA、MTVQA 等基准测试创下全球领先的表现;可以理解 20 分钟以上长视频,支持基于视频的问答、对话和内容创作等应用;
2025-11-25 13:55:27
678
原创 SpringSecurity 实现token 认证
Autowired@Override//1、获取请求头携带的tokenif(!//不需要token的路由可以直接放行return;response.getWriter().write(JSON.toJSONString(Result.failed(401,"token 非法","")));return;//放行。
2025-11-25 12:44:47
217
原创 springboot 修复 Spring Framework 特定条件下目录遍历漏洞(CVE-2024-38819)
刚解决Spring Framework 特定条件下目录遍历漏洞(CVE-2024-38816)没几天,又来一个新的,真是哭笑不得啊。不过没关系,springboot官方又发布了新的版本3.3.5,将项目升级到该版本即可从springboot2.x升级到3.x请查看。
2025-11-25 11:19:07
394
原创 Spring Boot spring-boot-maven-plugin 参数配置详解
默认情况下,repackage目标将使用可执行的构件来替代原始的构件。如果希望保留原是构件,并且也使用不同的分类来附属保留可执行的构件,可以配置如下:说明:如果不适用repackage目标,那么maven执行package命令生成的jar包只有一个,名称为pom.xml里面配置的name(artifactId)-version.jar。
2025-11-24 20:23:00
503
原创 PHP使用CURL发送POST请求方法总结(API对接必备)
java RSA2 加密、解密 、签名和验证签名 https://blog.youkuaiyun.com/TaLinBoy/article/details/106124535。IOS:RSA2 加密、解密 、签名和验证签名 https://blog.youkuaiyun.com/TaLinBoy/article/details/106140526。详细请参考:https://blog.youkuaiyun.com/guyongqiangx/article/details/74930951。而验证签名使用的是公钥。// 对认证证书来源的检查。
2025-11-24 19:05:16
865
原创 MySQL版本选择与安装
如果您的应用程序已经在一个较旧的版本上运行良好,并且没有迫切的升级需求,可以继续使用该版本,但应计划在未来进行升级。全面的性能改进:8.0版本引入了更多的性能优化和新特性,如默认的InnoDB存储引擎和更好的并行复制。对于大多数用户,建议使用最新的稳定版本,如MySQL 8.0,因为它提供了最佳的性能、安全性和新特性。如果您正在开发新的应用程序,建议直接使用最新的MySQL版本,以充分利用其提供的所有优势。改进的安全性:提供了更多的安全特性,如默认的加密连接和新的用户账户管理。
2025-11-24 15:03:55
380
原创 MySQL 中如何进行 SQL 调优
如果排序数据量小,MySQL会在内存中完成排序,如果数据量超过sort_buffer_size,会发生磁盘文件排序,磁盘排序涉及临时文件的创建和多次IO,性能更差!当对无索引字段排序时,MySQL无法利用索引的有序性,必须将数据加载到内存中进行排序,这就是filesort,filesort是一个非常耗费资源的操作。解释最左匹配原则:最左匹配原则是指在使用联合索引时,必须按照索引的顺序从左到右使用,不能跳过索引中的列。,去查找完整的行数据,这个“回到主表查找 city 列”的过程就是。
2025-11-24 13:53:51
586
原创 SDN架构详解
SDN架构中OpenFlow交换机基于流表(Flow Table)转发报文。经典网络依靠网络设备通过查询路由表指导流量转发当前OpenFlow的主流应用是用于数据中心的软件交换机,例如OVS、CE1800V(华为)等,而不是实现硬件交换机的转控分离每个流表项由匹配字段、优先级、计数器、指令、超时、Cookie、Flags这七部分组成。其中关于转发的关键的两个内容是匹配字段和指令。匹配字段是匹配规则,支持自定义。指令是用来描述匹配后的处理方式。
2025-11-23 05:46:05
829
原创 oracle使用PLSQL导出表数据
利用PL/SQL语言,编写一个存储过程实现针对单张表的数据导出功能,要求将给定表的数据转换成SQL语言的Insert语句,并保存在文件中。该过程以要导出的表名和保存SQL语句的文件名为参数。然后创建存储过程,其中,BEGIN后的第一行有用到刚刚定义的导出目录,如果定义的导出目录与我不同,那么请修改这一行的导出目录。在网上尝试搜索了一下,中文网里没找到合适的参考文章,要么是针对特定表结构,要么是只导出特定数量的列,于是自己完成后写篇记录。在导出目录下找到对应文件,确定内容确实为表的数据。
2025-11-23 04:36:31
97
原创 MySQL数据表操作
INT:整型DECIMAL(M, D):浮点型VARCHAR(SIZE):字符串类型TIMESTAMP:日期类型操作数据表:desc 表名;create table 表名(字段1 类型1,字段2 类型2,drop table 表名;修改表:alter table 表名 add column 列名 类型;alter table 表名 drop column 列名;alter table 表名 modify column 列名 新数据类型;
2025-11-23 03:26:00
683
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅