Mybatis-Plus 解决 updateById 更新 null 值无效问题

在使用 Mybatis-Plus 进行数据更新时,若实体字段值为 null,默认策略下数据库不会变更该字段。本文详解通过配置全局 field-strategy 或在实体类字段上使用 @TableField(strategy = FieldStrategy.IGNORED) 注解,强制更新 null 值,解决前端清空字段后后端无法同步的问题。

Mybatis-Plus 解决 updateById 更新 null 值无效问题

Java多线程同步锁卖票实战:synchronized与Lock的区别

本文通过经典的多线程卖票案例,深入解析Java中同步锁的使用。对比展示未加锁时的数据混乱现象,以及如何利用synchronized代码块确保线程安全。同时阐明synchronized内置锁与显式Lock接口在灵活性、功能特性上的核心差异,帮助开发者掌握高并发场景下的资源同步技巧。

Java多线程同步锁卖票实战:synchronized与Lock的区别

Java基于Socket实现HTTP多次请求复用连接

本文通过底层Socket编程演示如何在Java中实现HTTP协议的长连接(Keep-Alive)。文章解释了TCP与HTTP层级的关系,并通过手动构造HTTP/1.1报文头,在同一TCP连接上连续发起多个独立请求。代码示例清晰展示了Request Line与Header的编写规范,帮助开发者理解多请求复用一个连接的执行流程与原理。

Java基于Socket实现HTTP多次请求复用连接

Java实现八大常见排序算法示例

本文详细介绍Java中八大常见排序算法的代码实现,包括冒泡排序、选择排序、插入排序、希尔排序、快速排序、随机化快速排序、归并排序和可处理负数的基数排序。通过实例代码解析各算法原理与参数逻辑,助力开发者深入理解排序机制。

Java内部类详解:成员、静态与匿名内部类的区别与用法

本文深入解析Java中三种内部类:成员内部类、静态内部类和匿名内部类。详细说明它们的创建依赖、属性访问规则(尤其是私有属性的访问)、实例化代码示例以及关键注意事项,如外部对象共享问题,帮助开发者准确掌握内部类的使用场景与语法细节。

Java Redisson多策略注解限流实现

本文介绍如何结合Spring AOP与Redisson的RRateLimiter,通过自定义注解实现Java应用的多维度限流。方案涵盖IP、用户、方法级别等多种限流类型,利用函数式接口优化Key生成逻辑,有效防止高频访问导致的服务过载。

Java实现单线程聊天室:Socket通信基础教程

本文详细解析如何使用Java的Socket API构建单线程聊天室。通过ServerSocket监听端口并accept等待客户端连接,利用输入输出流进行数据收发。提供完整的服务端与客户端代码示例,展示TCP连接建立、消息读取与发送的流程,帮助初学者掌握网络编程核心原理。

Spring Boot中利用AOP与自定义注解优雅处理超级管理员分支逻辑

在Spring Boot项目中,针对超级管理员的特殊权限逻辑若采用大量if-else会导致代码臃肿。本文介绍一种基于自定义注解SuperDirection和SuperDirectionHandler,结合AspectJ切面编程的动态代理方案。通过解析注解表达式,自动切换至特备业务实现类,实现业务逻辑解耦,提升代码可维护性与扩展性。

Spring Boot中利用AOP与自定义注解优雅处理超级管理员分支逻辑

Spring Boot 解决 Fastjson 默认过滤 null 值字段

在 Spring Boot 项目中,Fastjson 默认会过滤掉 JSON 序列化时值为 null 的字段。本文介绍如何通过创建自定义的 HttpMessageConverter 配置类,使用 SerializerFeature.WriteMapNullValue 特性来保留所有字段,包括 null 值,从而确保前后端数据交互的完整性。

Spring Boot 解决 Fastjson 默认过滤 null 值字段