- 博客(76)
- 收藏
- 关注
原创 三步搞定!Spring Boot项目秒变Docker容器,部署效率翻倍
🤯 "本地跑得好好的,上线就崩!😫 "服务器环境配置怎么这么复杂!🌙 深夜加班调试环境配置...
2025-05-06 11:10:53
82
原创 SpringBoot中4大AOP实战场景:让你的代码优雅起飞!
通过这4大场景的实战演练,相信你已经掌握AOP这把双刃剑!AOP虽好,但过度使用会让代码变成"面条式"结构。合理运用,才能让代码既有弹性又保持优雅!
2025-05-03 08:27:10
864
原创 SpringBoot实现接口防刷的5种高效方案详解
在当今互联网应用中,接口安全是系统设计中不可忽视的重要环节。恶意用户或自动化脚本的高频请求不仅会消耗宝贵的服务器资源,还可能导致数据异常、服务不可用甚至系统崩溃。本文将详细介绍在SpringBoot框架下实现接口防刷的5种技术方案,帮助开发者构建更加健壮的应用系统。本文详细介绍了SpringBoot框架下5种接口防刷方案,从简单的注解限流到复杂的Sentinel集成,开发者可以根据实际需求选择合适的方案。在实际项目中,通常需要组合多种方案来构建全方位的防护体系。技术选型关键点评估系统规模(单机/分布式)
2025-04-28 21:16:24
1012
原创 请求和响应的概述
在Servlet编程中,和对象是处理HTTP请求和响应的关键。每次HTTP请求都会创建新的request和response对象,而Servlet实例通常只有一个,被多个请求共享。理解这一交互过程对于开发高效、安全的Web应用程序至关重要。
2025-04-22 14:31:55
346
原创 使用Redis实现实时排行榜
实现一个排行榜,很多人可能首先想到的是使用MySQL的order by来排序。然而,当数据量达到百万级别时,使用数据库排序的代价是很大的。因此,Redis的有序集合(ZSet)成为了一个更好的选择。唯一性:集合内的元素(成员)是唯一的。有序性:与普通Set的无序性不同,ZSet的成员是“有序的”,这种有序性是基于成员所关联的“分数”(score)进行排序的,分数是浮点类型。
2025-04-19 20:30:49
2146
1
原创 WebSocket:实现实时双向通信的技术
WebSocket协议为实现客户端与服务器间的实时双向通信提供了一种高效、低延迟的解决方案。它的设计使得其特别适用于需要频繁数据交互的实时应用场景。尽管存在浏览器兼容性和网络环境的挑战,WebSocket仍然是构建实时应用的首选技术之一。随着Web应用的不断发展,WebSocket的应用前景将越来越广泛。
2025-04-18 21:10:45
932
原创 MySQL的MVCC机制详解
MVCC(Multi-Version Concurrency Control,多版本并发控制)是数据库系统中用于实现并发控制的一种技术。它通过保存数据在某个时间点的快照来实现,使得在同一个数据行上可以同时存在多个版本,从而允许读操作不会阻塞写操作,写操作也不会阻塞读操作,提高了数据库的并发性能。MVCC是MySQL InnoDB存储引擎实现高并发事务处理的关键技术之一。通过保存数据行的多个版本,并利用Read View来判断数据版本的可见性,MVCC使得数据库在保证事务隔离性的同时,提高了并发性能。
2025-04-16 20:05:02
834
原创 Java 8 Optional的使用技巧:避免空指针,提升代码质量
Optional是 Java 8 引入的一个容器类,用于包装可能为null的对象。它提供了一种更优雅的方式来处理可能为null的值,避免了传统的null检查。Optional是 Java 8 中一个非常有用的工具,能够帮助开发者更好地处理可能为null的值,减少的出现。通过合理使用Optional,可以让代码更加简洁、安全和易于维护。希望本文的技巧和示例能帮助你在实际开发中更好地利用Optional,提升代码质量。
2025-04-15 19:52:32
1104
原创 Linux 命令全解析:从零开始掌握 Linux 命令行
Linux 命令行(Command Line Interface,CLI)是用户与操作系统交互的接口,通过输入命令来执行操作。Linux 命令行是强大的工具,掌握它可以大大提升你的工作效率。本文介绍了从文件管理到系统信息、进程管理的常用命令,希望能帮助你快速上手 Linux 命令行操作。练习是关键,多多尝试,熟练掌握这些命令,你将在 Linux 世界中如鱼得水!
2025-04-15 19:47:18
843
原创 Docker 镜像拉取超时问题:配置镜像加速器还不够?这位开发者的血泪教训告诉你答案!
在使用 Docker拉取镜像时,是否也遇到过以下令人抓狂的超时错误?这个问题看似简单,但解决起来却让人焦头烂额。网上一搜,大家都建议配置国内镜像源,但试了好几个镜像源,依然“拉!不!动!”,仿佛镜像仓库从地球搬到了火星。最近,我也在这个问题上卡了整整一天,翻资料、试配置,最终终于完美解决!今天就来详细分享这段“排雷”过程,以及一个隐藏的关键点,帮助你彻底解决 Docker 拉取镜像超时的问题。创建或修改文件打开或创建文件,添加上述完整配置。重启 Docker 服务。
2025-04-14 19:42:32
609
原创 基于MD5分块哈希的前端图片重复检测方案
本方案通过以下创新点实现高效上传:前端预处理机制哈希分块计算优化服务端快速查询未来优化方向:WebAssembly加速计算多哈希混合校验断点续传集成。
2025-03-06 19:13:29
586
原创 Scala 编程实验报告
通过本次实验,我掌握了 Scala 的基本语法、数据结构和控制结构,能够编写自定义类和特质,并熟练使用匿名函数。同时,我熟悉了 Scala 的容器类库的基本层次结构,能够熟练使用常用的容器类进行数据操作。此外,我还学会了使用 Scala 的 REPL 模式和编译运行方法,能够高效地进行函数式编程。
2025-03-06 16:11:26
463
原创 MyBatis-Plus驼峰映射配置:告别手动映射的繁琐
在开发过程中,处理数据库与Java实体之间的字段映射是一个重要但容易出错的环节。传统的做法是手动在SQL中将数据库字段映射到Java字段,虽然可靠,但随着项目规模的扩大,这种方式效率低下且容易出错。MyBatis-Plus提供了一种简单高效的解决方案——最后个人建议是一开始就设置自动驼峰映射,如果真的有字段需要手动映射的,再去做手动映射,这样开发体验会好很多。本文将详细介绍如何配置MyBatis-Plus实现驼峰映射,提升开发效率。然后继续开发,效率和感觉就舒服多了。
2025-02-28 15:51:01
349
原创 解决Spring Boot中LocalDateTime返回前端数据为数组结构的问题
在Spring Boot中,默认的序列化行为可能会导致JSON返回为数组结构。通过使用注解或全局配置Jackson的日期格式,可以将日期时间格式化为字符串,避免这种问题。希望本文能帮助你在实际项目中更好地处理日期时间的序列化问题,提升API的可读性和用户体验。
2025-02-26 19:30:32
1444
原创 宝可梦图鉴App:专为宝可梦粉丝打造的便捷查询工具
宝可梦图鉴App”是一款专为宝可梦粉丝设计的手机应用,旨在为用户提供一个便捷、功能丰富的宝可梦查询工具。用户可以通过该应用浏览所有宝可梦的详细信息,随时随地查看它们的属性、技能、进化线、蛋群信息,甚至精灵的捕获位置。与原版数据相比,改版后的精灵数据可能会有很大不同,因此,这款应用旨在为玩家提供最新、最全面的改版精灵信息。
2025-02-24 15:17:42
1469
原创 css过渡的几个案例
这些案例展示了CSS过渡的不同应用场景,你可以根据实际需求调整过渡的属性、时长和缓动函数。如果你有具体的需求,可以告诉我,我可以帮你定制更复杂的过渡效果!
2025-02-23 16:20:37
379
原创 基于Spring AOP实现方法执行时间监控与日志记录
Spring AOP 是一种通过动态代理实现的面向切面编程框架。它允许开发者定义切面(Aspect),并在特定的点(Pointcut)织入增强处理(Advice)。常见的应用场景包括日志记录、事务管理、权限控制、性能监控等。@TakeTime为了方便地标记需要监控的方法,我们可以创建一个自定义注解@TakeTime。通过自定义注解和Spring AOP,可以实现对方法执行时间的监控和详细日志的记录。这不仅有助于性能优化和问题排查,还能提升开发效率和系统可维护性。
2025-02-22 20:21:16
1323
原创 Spring Boot Validation 接口校验:从零到掌握
Spring Validation 是一个用于数据校验的框架,它基于和实现。通过在 JavaBean 的字段上添加特定的注解,可以定义数据的校验规则。Spring Boot 通过整合 Hibernate Validator,使得在 Web 应用中使用数据校验变得更加简单。如果内置的校验注解无法满足需求,可以通过自定义注解来扩展校验功能。String message() default "手机号格式不正确";Class<?Class<?
2025-02-22 09:52:32
1089
原创 Redis 缓存穿透、击穿、雪崩:问题与解决方案
缓存穿透、击穿和雪崩是使用 Redis 缓存时可能遇到的三大常见问题。通过合理的解决方案,可以有效避免这些问题,提升系统的稳定性和性能。缓存穿透布隆过滤器:高效过滤不存在的数据,但实现复杂。缓存空值:简单实现,但可能浪费缓存空间。随机退避:分散缓存失效时间,但需要合理设置过期时间。缓存击穿互斥锁:确保只有一个请求查询数据库,但需要实现分布式锁。永不过期:避免热点数据失效,但需要定期更新数据。随机过期时间:分散失效时间,但可能会有部分数据过期。缓存雪崩随机过期时间:分散失效时间,简单实现。
2025-02-21 19:35:49
1883
原创 CSS常用样式详解:从基础到实战
通过本文的学习,我们掌握了CSS中的各种常用样式,从基础的选择器和盒模型,到高级的Flexbox、Grid布局,再到响应式设计和动画效果。通过丰富的代码示例和实际案例,你可以更好地理解和应用这些知识。本文不仅适用于新手,也适用于有一定经验的开发者,帮助你进一步提升CSS技能。在实际开发中,建议多多实践,将各种样式应用到具体的项目中。同时,关注前端开发的最新趋势,学习更多高级的CSS技巧,持续提升自己的专业能力。
2025-02-21 09:31:02
961
原创 Redis 持久化:从零到掌握
Redis 作为一款广泛使用的内存数据库,虽然核心功能是基于内存提供高性能的数据存取,但在实际应用中,数据的持久化是不可忽视的。毕竟,内存中的数据一旦出现故障或重启,就会面临数据丢失的风险。因此,Redis 提供了多种持久化机制,确保数据能够安全地存储在磁盘中。本文将详细介绍 Redis 的持久化机制,包括 RDB 和 AOF 两种持久化方式的工作原理、配置方法、优缺点以及实际应用场景。
2025-02-19 19:33:56
1171
原创 使用 Docker 部署 Spark 集群
通过以上步骤,你已经成功使用 Docker 部署了一个 Spark 集群,包括一个 Master 节点和两个 Worker 节点。快速部署:通过 Docker Compose 一键式部署,无需手动配置每个节点。资源隔离:每个节点运行在独立的容器中,资源分配清晰。易于扩展:可以轻松添加或删除 Worker 节点以适应不同的工作负载。环境一致性:所有节点使用相同的 Spark 镜像,确保环境一致。你可以根据需要调整文件中的配置,例如增加 Worker 节点的数量、调整内存和 CPU 核数等。
2025-02-17 21:29:27
1447
原创 Python抓取豆瓣电影Top250
在本篇文章中,我们将探讨如何利用Python编程语言中的requests库和库来抓取豆瓣网站上电影Top250的数据信息。通过本文的学习,读者将掌握基本的网络爬虫技巧,了解如何解析HTML文档,以及怎样高效地处理和存储抓取到的数据。简要介绍为什么选择豆瓣Top250作为抓取目标,以及这项任务可能带来的价值或学习点。
2025-01-05 17:11:54
459
原创 Knife4j快速入门
Knife4j是一个用于生成和展示API文档的工具,同时它还提供了在线调试的功能,下图是其工作界面。Knife4j有多个版本,最新版的Knife4j基于开源项目,这个开源项目的核心功能就是根据SpringBoot项目中的代码自动生成符合OpenAPI规范的接口信息。OpenAPI规范定义接口文档的内容和格式,其前身是Swagger规范。
2024-11-24 21:29:35
549
原创 Redis快速入门
1.Reids定义Redis(Remote Dictionary Server)是一个基于内存的键值对存储系统,常用作缓存服务。由于Reids将数据都保存在内存中,因此其读写性能十分惊人,同时,为保证数据的可靠性,Redis会将数据备份到硬盘上,用于故障发生时的数据恢复。Redis特点高性能:Redis主要将数据存储在内存中,因此读写速度非常快,适合对速度有较高要求的场景。支持多种数据结构。
2024-11-24 18:17:55
863
原创 15个MySQL表设计的经验准则
如果没有特殊的理由,一般都建议将字段定义为 NOT NULL。为什么?首先,NOT NULL 可以防止出现空指针问题。其实,NULL值的存储也需要额外的存储空间,它也会导致比较运算更为复杂,是优化器难以优化SQL。NULL值有可能会导致索引失效如果将字段默认设置成一个空字符串或常量值并没有什么不同,且都不会影响到应用逻辑,那就可以将这个字段设置为NOT NULL。
2024-11-03 19:19:29
901
原创 MinIO 使用基础教程
MinIO 是一个高性能的对象存储系统,兼容 Amazon S3 API。它通常用于存储大规模非结构化数据,如图片、视频、日志文件等。MinIO 支持多种部署方式,包括单节点和多节点集群模式。对于网站系统,若为降低成本投入,将文件存储服务和网站系统部署在同一台服务器中,访问量不大,基本不会有问题,但访问量逐渐升高,网站文件资源读取逐渐频繁,单机服务器可能难以承载较大的请求量,可能会出现网站打不开,甚至系统异常等问题。
2024-11-02 18:46:51
4593
1
原创 Spring Boot 3 + Spring Security + Knife4j 无法访问 Swagger 文档的问题及解决方案
在使用Spring Boot 3框架结合Spring Security进行项目开发时,我们可能会遇到集成Knife4j后Swagger文档无法正常访问的情况。本文将探讨可能的原因以及相应的解决办法。
2024-10-31 18:44:37
1103
原创 如何解决前端发送数据到后端为空的问题
在进行前后端交互时,经常会遇到前端发送数据到后端时数据为空的问题。本文将详细探讨如何解决这一问题,并提供具体的解决方案。
2024-10-29 19:14:32
1174
原创 Docker创建常用的容器
MySQL 是一个广泛使用的数据库管理系统。创建 MySQL 的 Docker 容器,你需要确保容器可以持久化数据,并且可以通过网络访问。启动前需要先创建Minio外部挂载的配置文件( /minio/config),和存储上传文件的目录( /minio/data)注意获取镜像的时候要获取management版本的,不要获取last版本的,management版本的才带有管理界面。一个用来存放配置,一个用来存储上传文件的目录。
2024-10-27 21:18:58
380
原创 Git快速上手
Git 是一个免费且开源的分布式版本控制系统,被广泛用于软件开发中的代码版本控制。通过使用 Git,开发者可以高效地追踪文件的变化历史,并支持多人协作开发。本教程将带你快速了解 Git 的基本概念和操作,帮助你开始使用 Git 管理你的项目。git init输入后,会自动生成一个.git目录,注意这个目录是一个隐藏目录,而当前目录就是我们的工作目录。git status如果已经成功配置为Git本地仓库,那么输入后可以看到:这表示我们还没有向仓库中提交任何内容,也就是一个空的状态。
2024-10-24 19:43:42
1432
原创 Spring boot 控制台输出大佛
在resource文件夹下穿件一个txt文件命名为 banner.txt ,然后把大佛祖的代码粘贴上去。
2024-10-20 20:12:26
647
1
原创 日志系统介绍
添加上这行代码即可,可根据文档自由调整-- ch.qos.logback.core.rolling.RollingFileAppender用于文件日志记录,它支持滚动 -->-- 自定义滚动策略,防止日志文件无限变大,也就是日志文件写到什么时候为止,重新创建一个新的日志文件开始写 -->-- 文件保存位置以及文件命名规则,这里用到了%d{yyyy-MM-dd}表示当前日期,%i表示这一天的第N个日志 -->-- 到期自动清理日志文件 -->
2024-10-20 20:05:23
780
原创 数据库基础
数据库是用于存储、管理和检索数据的系统。它们在现代应用程序中扮演着至关重要的角色,确保数据的一致性、完整性和安全性。本文将介绍数据库的基础知识及其关键组件。
2024-10-13 14:57:26
1131
原创 解决Vue 3中Element Plus el-color-picker 组件消失的问题
组件无法正常显示的情况。这可能是由于多种原因造成的,包括但不限于CSS加载问题、JavaScript错误、版本兼容性等。本文将指导你如何排查并解决这个问题。在使用Vue 3和Element Plus框架构建应用程序时,你可能会遇到。在 el-color-picker 后面加上。
2024-09-23 21:00:15
581
原创 CentOS 7 上安装 Docker
至此,你已经在 CentOS 7 上成功安装了 Docker,并且可以开始使用 Docker 进行开发和部署工作了。Docker 提供了许多高级功能,比如网络配置、数据卷管理和 Swarm 模式等,有兴趣的话可以进一步探索。希望这篇教程对你有所帮助!
2024-09-09 19:55:05
717
原创 hive入门
打开:命令提示符程序,输入mysql -uroot -p 回车查看数据库使用数据库use 数据库名称;创建数据库删除数据库查看当前使用的数据库查看当前use的数据库。
2024-09-08 12:15:45
1742
原创 环境变量的配置
env在 Vue 3 项目中配置环境变量是一种常见的做法,可以让你根据不同环境(开发、测试、生产等)使用不同的配置。这有助于在不同环境下运行相同的应用程序时,能够适应各自的环境特性,如 API 地址、数据库连接字符串等。
2024-08-28 23:30:08
535
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人