自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

shyの个人笔记

唯热爱可抵岁月漫长

  • 博客(102)
  • 收藏
  • 关注

原创 MySQL连续登录天数统计

MySQL连续登录天数统计

2022-01-28 17:01:10 3117 1

原创 stream流多字段排序SpringBoot

Java8之stream流多字段排序

2022-01-13 17:05:28 17231 6

原创 Nacos踩坑记录之The IPv4 address(“nacos.xxxx.local“) is incorrect

Nacos踩坑记录之The IPv4 address("nacos.xxxx.local") is incorrect

2021-12-10 12:59:36 20743 19

原创 Java8中stream流的collectingAndThen方法应用实例

1.方法定义:此方法是在进行归纳动作结束之后,对归纳的结果进行二次处理。2.演示:User类准备/** * @desc: 用户实体类 * @author: ss.xin * @date: 2020/12/28 12:38 */@Data@AllArgsConstructorpublic class User { //用户Id int userId; //用户姓名 String userName; //用户工资 BigDecimal

2021-02-03 15:28:36 27255 18

原创 SpringBoot使用validator分组校验

SpringBoot中的分组校验允许根据不同场景灵活验证数据。主要有两种实现方式:使用@Validated注解在控制器层校验,和使用ValidateUtil在任意位置手动校验。前者与Spring MVC集成紧密,后者更加灵活。通过定义验证组、创建带注解的实体类,并选择合适的校验方法,可以有效确保数据正确性,提高应用程序健壮性和安全性。选择适当的验证策略对构建可靠的软件系统至关重要。

2020-06-08 18:13:24 890

原创 Python爬取国家统计局最新行政区划代码和城乡划分代码

Python爬取国家统计局最新行政区划代码和城乡划分代码

2024-09-12 10:14:29 493

原创 MyBatis中Collection和Association的底层实现原理

MyBatis中Collection和Association的底层实现原理

2024-09-10 17:39:17 766

原创 使用Nginx获取客户端真实IP(real_ip_header)

在使用 Nginx 作为反向代理或负载均衡器时,我们常常需要获取客户端的真实 IP 地址。然而,默认情况下,Nginx 记录的 IP 地址可能是上游代理或负载均衡器的 IP,而非实际客户端的 IP。为了确保我们能够正确获取和记录客户端的真实 IP,本文将介绍如何配置 Nginx,并进行调试。

2024-09-04 22:01:31 952

原创 使用LinkedHashMap实现固定大小的LRU缓存

使用LinkedHashMap实现固定大小的LRU缓存

2024-08-26 11:09:27 1517 3

原创 使用OpenRewrite升级SpringBoot项目

如何使用OpenRewrite升级SpringBoot项目

2024-08-23 16:40:55 1040

原创 MySQL常用函数

MySQL常用函数介绍

2024-08-16 14:49:57 1027

原创 Jackson常用注解详解

Jackson是Java中广泛使用的JSON处理库,提供了多种强大的注解来控制JSON序列化和反序列化。主要注解包括:@JsonProperty用于字段映射,@JsonIgnore用于忽略字段,@JsonFormat用于日期格式化,@JsonInclude控制属性包含条件,@JsonCreator指定构造函数,@JsonValue自定义序列化表示,@JsonIgnoreProperties忽略多个属性。这些注解使开发者能够精确控制JSON转换过程,提高代码可读性和可维护性,适用于各种复杂的JSON处理场景。

2024-07-30 14:31:03 636

原创 深入理解Java中的volatile关键字

深入理解Java中的volatile关键字

2024-07-30 08:52:06 766

原创 MySQL窗口函数详解

MySQL 8.0引入的窗口函数是一项强大特性,可简化复杂数据分析任务。本文介绍了窗口函数的概念、语法,并详细讲解了ROW_NUMBER()、RANK()、DENSE_RANK()、LAG()、LEAD()等常用函数。通过员工排名、成绩排序、销售增长率计算和移动平均值计算等实际应用场景,展示了窗口函数在处理排名、时间序列数据和累计计算方面的强大能力,有助于提高数据分析效率。

2024-07-25 23:12:50 1952

原创 SpringBoot整合SSE技术详解

本文详细介绍了如何在SpringBoot中整合Server-Sent Events (SSE)技术。文章阐述了SSE的基本概念、特点及其在SpringBoot中的实现方法,包括代码示例。同时,对比了SSE和WebSocket的区别,探讨了它们各自的优势和适用场景。文章强调SSE在单向实时通信中的简单性和效率,为开发者在选择实时通信技术时提供了valuable指导。

2024-07-23 23:42:18 1602

原创 SpringBoot集成Kaptcha验证码

本文全面介绍了Kaptcha验证码库的使用方法和特性。文章涵盖了Kaptcha的基本概念、主要特性、工作原理,以及在Java项目中的具体实现步骤。同时,深入探讨了Kaptcha的高级配置选项,包括去除干扰线、添加水纹效果等,并提供了详细的配置表。文章还讨论了使用验证码时的安全性考虑,分析了Kaptcha的优缺点,并对验证码技术的未来发展进行了展望。对于想要在web应用中实现高度可定制验证码的开发者来说,本文是一份全面而实用的指南。

2024-07-21 11:24:11 1237

原创 SpringBoot整合Kaptcha实现图片验证码加减乘除

介绍如何使用Kaptcha生成自定义图片验证码,并将验证码内容设置为100以内的加减乘除运算。

2024-07-21 09:49:46 434

原创 Jackson: Java的强大JSON处理利器

Jackson是一个用于处理JSON数据的开源Java库。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于阅读和编写,同时也易于计算机解析和生成。在Java领域,Jackson已经成为处理JSON数据的事实标准库。它提供了丰富的功能,包括将Java对象转换为JSON字符串(序列化)以及将JSON字符串转换为Java对象(反序列化)

2024-07-19 09:15:00 1070

原创 自定义Bean转换工具类

BeanConvertor是一个强大的Java对象转换工具类,旨在简化对象间的数据转换过程。它提供了四个核心方法,包括基于反射的简单对象转换和基于Jackson的复杂对象转换。通过使用BeanConvertor,开发者可以显著减少重复代码,提高开发效率,并降低手动转换的错误风险。无论是简单的DTO转换还是复杂的嵌套对象结构,BeanConvertor都能提供高效的解决方案。

2024-07-19 09:00:00 615

原创 Java使用Thumbnailator图片处理指南

Thumbnailator是一个功能强大且易于使用的Java图片处理库。无论是缩放、裁剪、旋转还是格式转换,Thumbnailator都提供了简洁的API,使这些操作变得非常简单。

2024-07-14 20:20:01 1032

原创 使用Java实现图片大小压缩

文章介绍了如何使用Java实现图片大小压缩,包括从输入流读取图片、压缩图片并通过输出流返回压缩后的图片数据。我们利用Thumbnailator库进行压缩,并创建了一个Spring Boot控制器来提供RESTful接口。

2024-07-14 19:55:19 2217 1

原创 Linux 定时任务详解:全面掌握 cron 和 at 命令

本文介绍了 Linux 中常用的定时任务管理工具 `cron` 和 `at`,包括 `crontab` 文件格式、任务设置、查看、删除及示例任务。同时,还涵盖了最佳实践和注意事项,如权限管理、日志记录、任务备份与恢复、测试定时任务及使用完整路径,帮助用户高效管理和调度系统任务。

2024-07-06 19:52:12 831

原创 SpringBoot实现文件下载限速

本文介绍了如何在SpringBoot项目中实现文件下载限速功能,以控制服务器带宽的占用并防止单个用户消耗过多资源。通过创建一个限速工具类和在控制器中使用`StreamingResponseBody`处理文件下载请求,我们可以实现大文件的逐步传输和传输速率控制。具体代码示例和详细解释帮助读者理解并实现这一功能,从而优化服务器资源使用,提升用户体验。

2024-06-28 11:40:32 725

原创 我的创作纪念日

在创作方面,我希望能拓展内容的广度和深度,尝试制作一些视频教程或者开设技术讲座,以更生动的形式传递知识。此外,我还通过建立知识库,将平时学习的资料和笔记系统化,这样在写作时可以快速查找和引用。此外,很多读者提出的问题和建议,也让我在技术上得到了进一步的提升。总结而言,写作不仅是我技术成长的重要方式,也是我与同行交流和分享经验的平台。通过不断的学习和实践,我希望能在职业和创作的道路上走得更远,为更多的开发者提供帮助。通过持续的写作和分享,我的博客已经收获了1.5W+的粉丝和24W+的访问量。

2024-06-07 11:04:43 958

原创 Shiro整合Redis分布式Shiro项目SpringBoot项目

Shiro整合Redis分布式Shiro项目SpringBoot项目

2024-06-05 18:02:56 882

转载 用Redis高效实现限流功能

在高并发场景下,接口限流能够防止系统过载,确保服务的可用性和稳定性。限流策略的选择和实现方式,直接影响到用户体验和系统的负载能力。而Redis作为强大的内存数据库,以其卓越的性能和原子操作特性,成为了实现接口限流的理想选择。它不仅可以快速响应请求,还能通过其丰富的数据结构,如字符串、列表、有序集合等,来辅助实现多样化的限流逻辑。

2024-05-28 17:53:45 102

原创 Java对接微信扫码支付Native支付-V3版本接口

Java对接微信Native支付扫码支付V3版本接口,详细介绍了Java对接微信Native支付扫码支付V3版本接口的对接流程

2024-04-19 11:13:51 1965 5

原创 Java对接微信JS支付-V3版本接口

Java对接微信JS支付V3版本接口,详细介绍了Java对接微信JS支付V3版本接口的对接流程

2024-04-19 10:29:48 1585

原创 Java对接微信H5支付-V3版本接口

Java对接微信H5支付V3版本接口,详细介绍了Java对接微信H5支付V3版本接口的对接流程

2024-04-11 16:14:35 3063 14

原创 如何在Ingress中进行路径重写rewrite-target

使用nginx.ingress.kubernetes.io/rewrite-target进行路径转发

2024-02-05 23:06:40 1108

原创 使用validator实现枚举类型校验

使用SpringBoot的validator实现枚举类型校验

2023-11-13 23:31:36 1902

原创 Java Stream:List分组成Map或LinkedHashMap

List集合可以通过stream()进行分组,但是一般默认得到的是无序的map集合,那么如何分组成有序的LinkedHashMap集合呢,

2023-11-10 15:59:56 5732

原创 zookeeper异常 Cannot open channel to 3 at election address

zookeeper异常 Cannot open channel to 3 at election address今天在测试服务器搭建单机zookeeper集群的时候遇到了下面的问题,花费了很长的时间才解决掉。

2023-09-20 22:52:27 984

原创 MFA多因素认证和TOTP认证逻辑解析

这篇博客深入探讨了MFA多因素认证及其核心组成部分,重点介绍了基于时间的一次性密码(TOTP)的工作原理和优势,强调了MFA和TOTP在提升在线安全性方面的重要性。

2023-08-15 21:26:59 687

原创 使用 Ingress 和 Nginx 进行路径重写和代理的指南

通过本文,我们详细介绍了如何使用Ingress注解和 Nginx 的proxy_pass配置实现路径重写和代理的功能。我们深入探讨了这些配置的工作原理,并提供了包含重定向前和重定向后的 URL 示例来帮助您更好地理解和应用这些概念。路径重写和代理对于构建强大的应用程序架构非常重要,能够根据需求灵活地处理请求路径和转发到不同的后端服务。希望本文对您有所帮助。如果您有任何问题或疑虑,请随时提问。

2023-07-13 01:15:38 3653

原创 深入理解Java Lambda表达式

Lambda表达式是Java 8引入的重要特性,它提供了一种简洁、灵活的函数式编程方式。本文将深入探讨Java Lambda表达式的概念、语法以及在实际开发中的应用场景。

2023-06-29 16:18:31 182

原创 使用Java的RandomAccessFile类实现大文件分片上传功能

本文介绍了使用Java的RandomAccessFile类实现大文件分片上传的方法。通过设置文件切片大小和路径,并计算切片数量,我们可以循环读取并上传每个切片。使用RandomAccessFile类,精确读取指定部分的文件数据。通过构建上传URL并发送切片数据,实现了高效上传和降低内存消耗。这种方法提高了上传效率,适用于处理大文件上传。通过本文,你将了解如何使用RandomAccessFile类处理大文件的分片上传。

2023-05-30 16:57:23 2119

原创 MySQL中ON DUPLICATE KEY UPDATE和REPLACE INTO区别

MySQL中ON DUPLICATE KEY UPDATE和REPLACE INTO区别

2023-05-16 13:51:17 868

原创 GROUP_CONCAT的进阶使用

GROUP_CONCAT的进阶使用

2023-03-28 18:19:28 2945

原创 什么是ThreadLocal

什么是ThreadLocal

2023-03-27 09:56:16 243

BeanConvertor工具类Java开发Bean转换拷贝工具类

内容概要:本资源提供了一个Java Bean转换工具类示例,展示了如何使用反射和JSON序列化实现对象之间的属性拷贝。该工具类包含两个主要方法:convertTo和convertByJackson,前者基于反射用于结构相同的对象间的属性拷贝,后者使用Jackson库进行更复杂的类型转换。此外,还提供了将对象列表转换为新目标类列表的方法,适用于批量转换需求。 适合人群:有一定Java开发经验,了解对象属性拷贝和反射机制的研发人员,尤其适用于需要处理复杂对象转换的中级Java开发者。 能学到什么:通过本资源,读者将学习到以下内容: 如何使用Java反射机制进行对象属性拷贝。 如何利用Jackson库实现复杂类型的对象转换。 不同转换方式的适用场景及其优劣。 批量对象转换的方法和实践。 阅读建议:在学习过程中,建议读者结合实际项目需求,尝试使用这些转换方法来处理不同的对象转换场景。同时,可以调试代码以深入理解反射和Jackson的工作原理,探索它们在实际应用中的性能和效率。

2024-09-18

空空如也

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

TA关注的人

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