自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 解决UserDetail中的GrantedAuthority无法被序列化的问题。

本文探讨了在Spring Security + JWT项目中,使用Redis缓存用户信息时遇到的GrantedAuthority反序列化问题。由于GrantedAuthority是一个接口,Jackson无法直接反序列化。解决方案是创建自定义的Jackson反序列化器,从JSON中提取authority字段值并构造SimpleGrantedAuthority对象。其实序列化/反序列化其他的接口或者类都是类似的代码。

2025-08-06 14:23:23 223

原创 使用SpringAOP实现日志追踪记录。

本文介绍了SpringAOP的简单使用,重点讲解了如何通过MDC(Mapped Diagnostic Context)实现日志追踪功能。主要内容包括:1)在SpringBoot中开启AOP支持;2)MDC的线程安全日志容器特性及其底层ThreadLocal实现;3)自定义TraceID生成器实现方案,包含IP、时间戳、进程号和自增序列;4)日志格式配置示例,通过TRACEID关联请求链路。文中提供了完整的代码实现,包括MDC工具类、TraceID生成器和日志配置文件,帮助开发者实现无侵入式日志记录功能。

2025-06-26 11:03:28 627

原创 SpringAOP的学习使用

本文介绍了Spring AOP的基本概念和使用方法。主要内容包括:1) 所需Maven依赖包配置;2) AOP的执行顺序(@Before、@AfterReturning、@AfterThrowing、@After);3) 捕获表达式execution的使用示例;4) 具体代码示例展示了不同通知类型的使用方式;5) 环绕通知@Around的使用方法,以及使用自定义注解的推荐做法。文章还特别说明了AOP不是链式处理,以及正常执行和异常情况下的通知执行顺序差异。

2025-06-26 10:21:15 181

原创 LeetcodeHot100 -02两数相加

将该数字存入链表中。new ListNode(sum % 10) =>sum%10正好是进位之后剩余的数。2 + 5 = 7 ,sum = 7 tag = 0 => 两数相加为7,进位为0。第一个进来的l1,l2对应的就是测试用例 2 和 5;输出[8,9,9,9,0,0,0,1]

2025-06-26 09:49:41 153

原创 准备面试的时候,学习一下 ThreadLocal的实现原理

ThreadLocal通过为每个线程提供独立的变量副本实现线程隔离。每个线程维护一个ThreadLocalMap,存储Entry数组,其中key为ThreadLocal对象,value为线程变量值。由于Entry的key是强引用,可能导致内存泄漏,需及时调用remove()方法释放内存。ThreadLocalMap采用数组+线性探测法存储数据,适用于存储较少变量的场景。使用时可以通过创建多个ThreadLocal对象来保存不同数据,并建议使用完毕及时清理线程数据。

2025-06-21 15:55:16 245

原创 Java基础实习知识点(慢更)

Java基础面渣,数据类型、面向对象、类、面试题,设计原则,等多个角度,结合自己的语言和理解编写

2025-06-16 13:49:57 1273

原创 Mybatis-plus的几个Wrapper用法

Mybatis-Plus提供了多种Wrapper查询方式,包括LambdaQueryWrapper和QueryWrapper,前者通过方法引用避免字段名硬编码问题,后者更灵活支持动态排序。UpdateWrapper可用于修改数据,支持setSql操作。Mybatis-Plus还扩展了BaseMapper,提供通用Service接口实现。分页查询通过Page对象实现,可结合条件筛选。LambdaWrapper利用Lambda表达式和方法引用,减少字符串魔法值,而QueryWrapper在某些场景如动态排序时更

2025-06-13 15:12:37 339

原创 Langchain4j和SpringAI实战(无MCP)

使用LangChain4J和SpringAI构建AI对话系统的技术要点。LangChain4J部分包含Assistant实现(通过AiServices构建)、流式对话接口定义、记忆管理(10条消息窗口)以及向量数据库操作流程(嵌入模型使用、向量搜索实现)。SpringAI方面展示了最新版本配置(1.0.0)、两种客户端使用方式(自动注入/自定义)和基于消息窗口的记忆管理实现。

2025-06-13 15:09:18 265

原创 SQL注入入门学习

SQL注入入门学习

2022-11-25 17:25:58 1732

空空如也

空空如也

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

TA关注的人

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