自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

编码行者的博客

失败是什么?没有什么,只是更走近成功一步;成功是什么?就是走过了所有通向失败的路,只剩下一条路,那就是成功的路。

  • 博客(464)
  • 资源 (2)
  • 收藏
  • 关注

原创 使用策略模式实现 Spring 分布式和单机限流

我们可以使用策略模式来统一单机限流和分布式限流的实现,提高代码的可扩展性和可维护性。思路是定义一个 接口,并分别实现单机限流策略 和分布式限流策略 。在 AOP 切面中,根据配置决定使用哪种限流策略。实现单机限流策略实现分布式限流策略修改切面逻辑在切面逻辑中,我们注入了 的实现类。根据配置决定使用单机限流还是分布式限流策略。在使用时,我们只需要在方法上标注 注解即可,而不需要关心底层使用的是单机限流还是分布式限流。在 Spring 配置中,我们可以根据需求注入不同的 实现类:通过

2024-04-17 17:02:55 231

原创 使用 Spring AOP 和 Guava RateLimiter 实现 API 限流

其次,定义一个// 每秒钟生成令牌的速率 long timeout() default 0;// 尝试获取令牌的超时时间 TimeUnit timeUnit() default TimeUnit . SECONDS;// 超时时间单位 }// 每秒钟生成令牌的速率 long timeout() default 0;// 尝试获取令牌的超时时间 TimeUnit timeUnit() default TimeUnit . SECONDS;// 超时时间单位 }

2024-04-17 16:57:45 186 1

原创 Spring Boot 框架集成Knife4j

本次示例使用 Spring Boot 作为脚手架来快速集成 Knife4j,Spring Boot 版本。RequestHandlerSelectors.basePackage 要改成你自己的。pom.xml 完整文件代码如下。第一步:在 maven 项目的。,Knife4j 版本。,完整代码可以去参考。

2024-04-11 21:08:28 512

转载 通过方法引用获取属性名的底层逻辑是什么?

Book::getId 这就是方法引用,松哥之前也专门写过文章介绍相关内容,这里就不再多说。这里我们就单纯来说说为什么 MP 通过 Book::getId 就可以识别出来这里的属性名。

2024-04-07 15:28:13 17

原创 深入理解MySQL中的utf8、utf8mb4和排序规则

在MySQL中,字符集和排序规则是两个非常重要的概念,它们决定了数据库如何存储和比较字符串数据。今天我们来探讨一下MySQL中几种常用的字符集和排序规则之间的区别和适用场景。

2024-04-07 14:07:28 567

原创 VueDraggablePlus 支持 Vue2 和 Vue3 的拖拽组件

官网:https://alfred-skyblue.github.io/vue-draggable-plus/

2024-04-07 09:53:00 238

原创 使用 CSS 实现毛玻璃效果

在现代 Web 设计中,毛玻璃效果越来越受欢迎。它能够让界面元素看起来更加柔和、朦胧,同时又不会完全遮挡背景内容,给人一种透明而又不失质感的视觉体验。虽然过去实现这种效果需要借助图像编辑软件,但现在只需要几行 CSS 代码,就可以在网页上呈现出令人惊艳的毛玻璃效果。

2024-03-19 14:58:33 2059

原创 在 Vue.js 3 中封装全屏功能工具类

在本文中,我们学习了如何在 Vue.js 3 中使用 Composition API 封装全屏功能的工具类。虽然这个示例相对简单,但它展示了将特定功能抽象成可复用的工具类的好处。通过这种方式,我们可以提高代码的质量和可维护性,并在不同的组件中轻松共享相同的逻辑。如果你对这种封装方式有任何疑问或建议,欢迎在评论区留言讨论。我也鼓励你尝试封装其他常见的功能,以进一步提高自己的编码技能。

2024-03-19 14:08:37 642

原创 深入理解 Linux 函数参数

在Linux Shell编程中,函数是一种非常有用的功能,它可以将重复的代码封装起来,提高代码的可重用性和可维护性。在本文中,我们将探讨Linux Shell函数及其参数的相关知识。

2024-03-18 11:13:36 931

原创 如何优雅地处理Web应用中的大文件上传

通过文件分片、后台计算和SHA-256散列值验证,我们不仅优化了大文件的处理和上传过程,还确保了数据的安全性和完整性。以上实现方式展示了现代Web技术如何解决传统问题,提升用户体验,同时保障数据处理的效率和安全。希望这篇博客能够帮助你理解和实现在Web应用中处理大文件的最佳实践。

2024-03-08 16:56:34 821 2

原创 Web密码输入框:安全性、可用性与最佳实践全解析

在Web开发中,保护用户密码的安全性至关重要。本文全面解析了的使用技巧、属性的应用、视觉反馈、防止密码泄露、提高可访问性、客户端验证等方面的最佳实践,并结合实际代码示例。

2024-03-08 15:45:02 734

原创 优化Web应用的中文输入体验

在构建面向中文用户的Web应用时,提供流畅的输入体验至关重要。由于中文字符的输入通常依赖于输入法编辑器(IME),这使得实现响应式和准确的输入事件监听变得更加复杂。本文将探讨如何通过JavaScript优化中文输入体验,特别是如何准确处理和事件来提升用户体验。

2024-03-08 13:36:28 770

原创 探索Web中的颜色选择:不同取色方法的实现

对于需要更多控制和自定义外观的场景,你可以使用元素配合JavaScript来创建自定义的颜色选择器。

2024-03-08 13:23:04 695

原创 Linux权限系统深度解析

深入理解和应用Linux权限系统,不仅能保。

2024-03-08 13:03:40 442

原创 使用 ResolvableTypeProvider 进行类型解析

是 Spring Framework 中的一个接口,它定义了一个方法,该方法返回一个对象。是 Spring 提供的用于描述 Java 类型信息的工具类,它可以处理泛型、数组、嵌套类型等情况。接口为我们提供了一种灵活且强大的方式来处理类型解析,特别是在使用 Spring Framework 进行开发时。通过实现这个接口,我们能够更好地利用 Spring 提供的类型处理工具,简化代码并提高可维护性。希望本文能够帮助你更好地理解和应用接口。如果你有任何疑问或建议,欢迎在评论区留言。

2024-03-06 13:43:58 471

原创 分析SSH登录日志

SSH(Secure Shell)是远程连接服务器的常用工具,通过查看系统的认证日志,我们可以了解到系统上的SSH登录活动。总结起来,这个命令帮助系统管理员追踪SSH登录活动,尤其是关注失败的认证尝试。通过分析登录频率,管理员可以及时发现异常登录行为,加强系统的安全性。通过运行这个命令,我们可以得到一个按照SSH登录次数排序的IP地址列表。:按照出现次数进行逆序排序,以便最高频次的IP地址在前面显示。:统计每个唯一的IP地址出现的次数,并在前面显示出现次数。:对提取出的IP地址进行排序。

2024-03-06 10:39:49 404

原创 解决Linux删除大量文件时的“Argument list too long“错误

在Unix/Linux系统中,使用rm命令删除大量文件时,很容易遇到一个常见的问题,即"Argument list too long"。这个错误通常发生在命令行参数列表过长的情况下,特别是在文件数量过多的情况下。本文将探讨这个问题的起因,并提供一个有效的解决方案,通过使用find命令结合来规避这一错误。

2024-03-04 17:12:41 407

原创 文件搜索与性能优化:`find` 命令的多种用法比较

在Linux系统中,find命令是一个功能强大的工具,用于查找文件和目录。然而,在实际应用中,我们经常面临对性能进行优化的需求,尤其是在搜索大型文件系统时。本文将探讨在使用find命令进行文件搜索时的多种实现方式,并对它们的性能和优缺点进行比较。

2024-03-04 17:07:20 498

原创 打造无缝滚动体验:JavaScript中的scrollIntoView()方法实战指南

通过本文的指南和实例,你将能够充分理解如何运用方法,从而提升用户在你的网页上的滚动体验。不仅如此,这些实战示例也能帮助你更好地应用这一特性到你的项目中,创造出令人难忘的用户交互效果。让我们一起深入JavaScript的滚动世界,打造出无与伦比的网页体验吧!

2024-03-01 14:10:41 504

原创 探索CSS中的宽度设置:width: 100% 与 width: auto 的区别

的设置更注重元素内容的大小。当你希望元素的宽度根据其内部内容的多少自动调整时,这是一个理想的选择。默认情况下,块级元素会尽可能地占满父元素的宽度,但也会根据内容的需要动态调整。在前端开发中,CSS的样式规则是我们创建各种布局和设计的关键。在这个过程中,设置元素的宽度是一个常见的任务。本文将深入探讨这两者之间的区别以及它们在实际开发中的应用。在许多情况下,我们希望元素占据其父元素的整个宽度,以实现响应式设计。的元素充满其父元素的宽度,确保在不同屏幕尺寸下都能适应。的元素根据其内部内容的大小动态调整宽度。

2024-02-28 11:22:44 701

原创 使用 JMimeMagic 在 Java 中识别文件类型

在 Java 中,我们可以使用 JMimeMagic 库来识别文件类型,尤其是在需要准确区分文件类型时。下面是一个简单的使用 JMimeMagic 的示例代码。

2024-02-19 16:00:26 444

原创 Java Commons模块详解:提高开发效率的工具集合

Java Commons 是一个开源的 Java 库集合,其中包含了一系列实用工具和功能模块,可以大幅提高 Java 应用程序的开发效率。本文将为您详细介绍几个常用的 Commons 模块,帮助您了解它们的功能和用法,为您的开发工作提供便利。

2024-01-24 16:37:46 876

原创 深入了解 Java 中的 Class.cast 方法

Class.cast方法为我们提供了一种安全而可靠的类型转换方式,可以在运行时进行类型检查,避免了类型不匹配导致的问题。然而,在实际编程中,应尽量设计良好的类层次结构和接口,以减少类型转换的需要。通过深入了解和合理运用Class.cast方法,我们可以在 Java 编程中更加灵活地处理对象类型,提高代码的可维护性和可读性。

2024-01-24 16:18:46 488

原创 Java内省与反射:灵活操作JavaBean属性的利器

Java内省是一种动态获取JavaBean信息的机制,通过内省,我们可以在运行时检查、获取和修改JavaBean的属性,而无需了解其具体实现。主要通过类和类实现。Java内省是一种强大的反射机制,为我们提供了在运行时获取和操作JavaBean属性的便捷方式。通过和等类,我们能够动态地获取属性信息,使得JavaBean的操作更加灵活。在实际项目中,合理使用内省可以提高代码的可维护性和灵活性。完整demo// 获取Person类的BeanInfo对象。

2024-01-24 16:14:23 399

原创 消除 fetch 异步传染性

优化之前我们会发现,我有一个fetch请求返回promise,我要获取和数据我就得 用await ,用了await 当前函数必须是个async 如此循环往复调用,接下来所有的方法都要加上 async await,这就叫。,我们可以用react 父组件加载子组件的原理。// 自定义 fetch 消除 异步传染性。// 使用json()方法解析响应数据。// // 检查网络请求是否成功。//缓存旧的fetch。// 重写fetch。

2023-12-28 15:27:54 427

转载 Chrome 浏览器资源缓存策略深度讲解-转官网

一般来说,缓存可以通过存储数据来提高性能,这样将来针对相同数据的请求可以更快地得到处理。例如,通过网络缓存资源可以避免往返服务器。缓存的计算结果可以省略执行相同计算所需的时间。在 Chrome 中,缓存机制以各种方式使用,HTTP 缓存便是一个示例。

2023-12-27 15:38:33 122

原创 深入探索Web浏览器端跨标签页通信:方法、优缺点及实践

现代Web开发中的跨标签页通信是一个多样化且复杂的话题。通过结合LocalStorage、Broadcast Channel API、SharedWorker、

2023-12-22 14:07:43 446

原创 深度解析DOM尺寸与位置:clientWidth、offsetWidth、scrollWidth、getBoundingClientRect() 一网打尽

获取元素内容区域的宽度,不包括边框和滚动条。:获取元素相对于其父元素的偏移宽度,包括边框、内边距和滚动条。:获取元素内容的总宽度,包括溢出的部分。:获取元素相对于视口的位置和大小信息。在实际应用中,根据具体的需求选择合适的属性或方法来获取元素的尺寸和位置信息,可以更灵活地处理 DOM 操作。

2023-12-20 13:55:01 558

原创 Linux目录创建的高级操作技巧和命令

在Linux系统中,创建目录是日常操作中的基础之一。除了常规的mkdir命令,还有一些高级的操作技巧和命令可以提高效率。本博客将介绍一些常用的目录创建方法,以及如何结合不同命令实现更复杂的目录结构。

2023-12-12 16:07:17 305

原创 基于Maven的Spring Boot应用版本号获取解析

在Spring Boot应用的开发和部署中,了解应用的版本号对于管理和监控应用至关重要。本文将深入解析一种基于Maven打包的Spring Boot应用中,根据不同的运行环境获取应用版本号的解决方案。这种灵活的解决方案能够确保在不同的部署环境中都能获取到正确的应用版本号,为开发者提供了更好的应用管理和监控手段。获取JAR文件的路径,然后遍历JAR包中的条目,寻找包含版本信息的。通过解析类文件的路径,我们可以得到应用在文件系统中的基本路径。文件的路径,然后通过文件流获取其中的版本号信息。

2023-12-06 18:33:40 749

原创 Vue3 组合式实现 带连接线的Tree型 架构图(一级树形图)

【代码】Vue3 组合式实现 带连接线的Tree型 架构图(一级树形图)

2023-12-04 20:04:53 961

原创 Spring Boot 应用的 Docker 化:从 Maven 构建到 Docker 部署的完整指南

总的来说,这一套 Docker 化的流程不仅降低了部署复杂性,还提升了效率,为在不同环境中部署应用提供了极大便利。这对于追求快速、可靠且一致的软件部署流程的现代开发团队来说,是一种至关重要的实践。脚本复制到指定的输出目录。这样做的好处是,你可以确保在最终的发版物中包含了这些对于部署和管理 Docker 容器至关重要的文件,实现了项目的一体化管理。这个插件允许我们在 Maven 的构建过程中复制和处理资源文件。)以及 Dockerfile 与 Maven 打包工具集成,我们可以利用 Maven 的。

2023-11-24 16:10:02 2229 6

原创 打包和部署Java应用程序:Maven和Shell脚本的实用方法

整个思路是通过Maven插件将项目的关键文件和配置打包成一个ZIP文件,然后提供一个Shell脚本来管理应用程序的启动和停止。同时,通过Shell脚本提供的功能,可以更方便地监控应用程序的运行状态和查看日志,提高了部署后的维护性。本博客将探讨一种使用Maven插件和Shell脚本的简化方法,以创建一个分发包,其中包含了您项目的可执行JAR文件、配置文件和一个方便的启动脚本。该文件定义了汇编结构,确保JAR文件、启动脚本和配置文件以期望的方式组织在一起。目录中,概述了分发包的结构。配置我们项目的打包。

2023-11-22 16:34:36 749

原创 CentOS基Docker容器时区配置解决方案

配置Docker容器的时区对于确保应用程序正确处理日期和时间至关重要。

2023-11-21 16:59:05 806

原创 在网页中添加水印的实现方法

在网页设计中,为了保护内容的版权以及增加一些特殊效果,经常需要在页面上添加水印。本文将介绍一种通过Canvas和JavaScript实现在网页上添加水印的方法。功能:允许自定义水印内容、字体颜色可以防止用户删除水印元素、修改样式等其他手段隐藏水印<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <style> * {

2023-11-17 13:44:36 173

原创 Oracle 列表分区深入解析

Oracle 数据库的列表分区功能为数据管理提供了极大的灵活性和效率。本文将深入探讨 Oracle 列表分区的各个方面,包括其基本概念、创建方式、维护策略、高级特性以及最佳实践。

2023-11-14 16:52:19 567

原创 动态切换 Spring Boot 打包配置:使用 Maven Profiles 管理 JAR 和 WAR

在多环境开发中,我们经常需要根据部署环境来改变 Spring Boot 应用的打包方式。本文将探讨如何使用 Maven Profiles 结合依赖排除来动态地切换 JAR 和 WAR 打包配置。转换 Spring Boot 应用从 JAR 到 WAR 时,首先需要在 中进行一些基本调整:修改 Spring Boot Starter:配置 Maven 插件:2. 定义 Maven Profiles定义不同的 profiles,每个针对特定的打包需求:在 中,将 依赖的作用域设置为 意味

2023-11-13 14:19:42 1259

原创 有向图的深度优先查找与邻接矩阵的动态选择算法

类为表示和操作有向图提供了一种灵活而高效的解决方案,通过动态选择适当的数据结构,既节省了内存,又保证了操作的高效性。在实际应用中,可以根据具体的场景和需求来选择最合适的表示方式,以达到最佳的性能表现。邻接表是一种用于表示图的数据结构,它通过为每个节点维护一个相邻节点的列表来描述图的结构。是一个用于表示有向图的类,它根据节点数量和添加边的次数动态选择使用邻接矩阵或邻接表表示。:在节点数量较少时,自动选择邻接矩阵表示,节省内存空间。:根据节点数量和添加边的次数动态选择适当的表示方式,兼顾了空间和时间效率。

2023-11-10 11:29:49 122

转载 Input Password 防止自动填充

在项目中常需要修改或者填写密码,假设浏览器已经记住密码,常会通过 autocomplete=off 设置防止自动填充 type=password 的字段。但是大多数情况这样设置是无效的。@pdai。

2023-11-09 19:09:00 347

原创 生成带干扰线的验证码

【代码】生成带干扰线的验证码。

2023-11-09 15:58:10 172

爬取知乎专栏文章并生成PDF css文件

https://blog.csdn.net/mbh12333/article/details/103264866

2019-11-26

Java内嵌式Tomcat-TomcatDemo

这是一个Java内嵌式 Tomcat的Demo。详细文章请见我的博客

2018-12-12

空空如也

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

TA关注的人

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