Java
-
面试官:PageHelper如何实现分页?
PageHelper 实现分页原理 一、PageHelper 的使用 在 SpringBoot 中引入对应的 starter: <dependency> &n…
-
浅谈单调队列
浅谈单调队列 一、背景与目的 在数据结构中,相信大家都学过队列,这是一种先进先出的数据结构。但是本文章主要谈到的「单调队列」是队列的一种变体,它在基本的队列先进先出的基础之上,还保…
-
Mybatis Plus 空字符串插入问题引起的思考
在这篇文章中,结合笔者在工作中使用到 Mybatis Plus 的过程中遇到的空字符串丢失的问题,谈一谈对 Mybatis Plus 的一些看法。由于项目历史问题,使用到的 Myb…
-
Spring Boot与gRPC的完美融合:构建高效用户服务与订单服务通信
gRPC 是一种由 Google 开发的高性能、开源的远程过程调用(Remote Procedure Call, RPC)框架。它允许在不同的计算机系统或进程之间进行通信,使得分布…
-
Java 17 如何改变你的编程方式
Java 17 是一个长期支持版本 (LTS),于 2021 年发布,包含多个新特性和改进。以下是一些关键的新特性及其示例说明: 测试代码结构图 1. Pattern Matchi…
-
自定义Bean转换工具类
BeanConvertor工具类:简化Java对象转换的利器 在Java开发中,我们经常需要在不同的对象之间转换数据。这可能是因为我们需要将数据从一个层(如数据访问层)转移到另一个…
-
SpringBoot整合Kaptcha实现图片验证码加减乘除
在开发Web应用时,验证码是一个常见的功能,它可以帮助我们防止机器人的恶意操作。今天我们将学习如何使用Kaptcha生成图片验证码,并自定义验证码内容为100以内的加减乘除运算。 …
-
Kaptcha – Java图片验证码
1. 什么是Kaptcha验证码? Kaptcha是一个强大的开源Java验证码生成库,由Google开发。它能够生成高度可配置的图片验证码,主要用于防止自动化程序滥用web应用,…
-
SpringBoot整合SSE技术详解
SpringBoot整合SSE技术详解 1. 引言 在现代Web应用中,实时通信变得越来越重要。Server-Sent Events (SSE)是一种允许服务器向客户端推送数据的技…
-
MySQL窗口函数详解
MySQL窗口函数详解 MySQL从8.0版本开始引入了窗口函数,这是一个强大的特性,可以大大简化复杂的数据分析任务。本文将详细介绍MySQL窗口函数的概念、语法和常见用法,并结合…
-
深入理解Java中的volatile关键字
深入理解Java中的volatile关键字 1. 引言 在Java多线程编程中,volatile关键字扮演着重要角色。它能够保证变量的可见性和有序性,是实现线程安全的重要工具之一。…
-
Jackson常用注解详解
Jackson常用注解详解 Jackson是Java生态系统中广泛使用的JSON处理库之一。它提供了一系列强大的注解,可以帮助我们更精确地控制Java对象与JSON之间的序列化和反…
-
使用OpenRewrite升级SpringBoot项目
使用OpenRewrite升级SpringBoot项目 什么是OpenRewrite? OpenRewrite是一个强大的开源自动化源代码重构工具,专为大规模代码库设计。它的核心理…
-
使用LinkedHashMap实现固定大小的LRU缓存
使用LinkedHashMap实现固定大小的LRU缓存 1. 什么是LRU? LRU是”Least Recently Used”的缩写,意为”最…
-
使用 Nginx 获取客户端真实 IP
使用 Nginx 获取客户端真实 IP 在使用 Nginx 作为反向代理或负载均衡器时,我们常常需要获取客户端的真实 IP 地址。然而,默认情况下,Nginx的 $rem…
-
SpringBoot实战:结合 MongoDB实现日志数据保存和归档
引言 MongoDB实现日志数据保存和归档,意味着利用MongoDB数据库来存储和管理日志数据,以及进行日志数据的归档处理。日志数据是系统或应用程序在运行过程中产生的记录信息,对于…