自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 用工程方法解决 Spring BeanUtils 泛型不一致问题:从原理到自动化检测

摘要 Spring框架升级后,BeanUtils.copyProperties方法对泛型的严格检查导致集合属性复制丢失问题。为解决这一问题,我们开发了一个自动化检测工具,结合JavaParser静态分析和反射技术,扫描代码库中相关调用点,检查集合属性的泛型一致性。该工具能够定位问题代码位置,并输出详细报告,包括文件名、行号、方法名及不一致的集合属性,有效降低了人工排查成本。工具实现依赖JavaParser库进行代码解析,并通过反射机制验证泛型类型匹配,为Spring升级过程中的兼容性问题提供了高效解决方案。

2025-10-09 14:37:10 1049

原创 升级不是Copy & Paste:Spring 4.3.0 升级到 5.3.39 实践

本文总结了从Spring 4.3.0升级到5.3.39的经验。升级背景包括技术债清理、容器化适配、安全更新和AI能力准备。升级过程中遇到的主要问题:1)废弃类导致的启动报错;2)路径匹配规则变更;3)事务回调执行时机变化;4)事务状态判断更严格。解决方法包括配置调整、规范请求路径、优化事务处理逻辑等。升级后获得性能提升20%、内存优化、安全加固等收益,同时为后续技术演进奠定基础。文章提供了详细的错误分析和解决方案,对类似升级具有参考价值。

2025-08-19 10:11:40 1287

原创 Spring 事务中的 beforeCommit 是业务救星还是地雷?

在订单中台的持续演进过程中,我们发现一些早期设计方案在应对高并发、分布式事务以及业务异常处理方面存在隐患。其中,最典型的一个案例是 —— 将库存预占逻辑放入 beforeCommit 回调中处理。本文从实际项目中的踩坑经历出发,深入剖析 Spring 事务钩子的执行时机、生命周期及使用陷阱,希望为你避开这颗“隐形地雷”。

2025-08-19 10:10:12 904

原创 相似性算法如何驱动智能搜索

摘要:向量检索是一种基于向量相似度的检索方法,适用于非结构化数据的语义搜索。首先将文本转换为高维向量,再通过余弦相似度或欧几里得距离计算向量相似度。对于大规模数据,使用近似最近邻搜索(ANN)提高效率,常见工具有FAISS、Milvus等。相比传统关键词匹配,向量检索能实现语义级别的相似度计算,更适用于自然语言处理场景。

2025-08-19 10:09:03 651

原创 初识Spring AI Alibaba

Spring AI Alibaba是基于Spring AI的AI开发框架,为Spring Boot应用提供生成式AI能力。它支持通义系列大模型及主流开源模型,涵盖聊天、文生图等多种AI服务类型。核心特性包括Fluent API、RAG开发模式、函数调用、结构化输出等,支持快速构建问答系统、智能对话等应用。使用需JDK17+,通过Maven引入依赖并配置API-KEY即可注入ChatClient开发。框架深度集成阿里云服务,提供Prompt动态管理、矢量数据库等云原生能力,简化了AI应用开发流程。

2025-08-19 10:08:32 437

原创 软件研发领域如何区分技术大佬和CRUD BOY

摘要:本文探讨了技术成长路径,对比了"技术大佬"与"CRUD Boy"的差异。真正的技术专家需具备深厚的技术储备、化繁为简的能力、业务建模功底和行业洞见,而初级开发者往往止步于表面理解与模仿。作者建议通过精读经典书籍、研读源码、深入理解业务来突破成长瓶颈,强调技术最终要服务于业务创新。文章指出,当达到融会贯通的境界时,专业能力可迁移至不同领域。

2025-08-19 10:07:30 161

原创 软件工程工作总结结合日本物业管理思维思考

摘要:本文探讨如何巧妙呈现年终工作总结与KPI,特别针对大公司稳定项目和初创公司的不同情况。建议借鉴物业管理中的"预防性修缮"理念,将软件工程维护工作转化为前瞻性优化方案,如性能提升、技术债务清理等。通过展示对系统未来风险的预见性和解决方案,既体现了工作价值,又能获得管理层认可。这种思路尤其适用于以维护为主的成熟项目,帮助员工在看似平淡的工作中突出自身贡献。

2025-08-19 10:05:57 676

转载 缓存穿透,缓存击穿,缓存雪崩

缓存穿透什么是缓存穿透正常情况下,我们去查询数据都是存在。那么请求去查询一条压根儿数据库中根本就不存在的数据,也就是缓存和数据库都查询不到这条数据,但是请求每次都会打到数据库上面去。这种查询不存在数据的现象我们称为缓存穿透。穿透带来的问题试想一下,如果有黑客会对你的系统进行攻击,拿一个不存在的id 去查询数据,会产生大量的请求到数据库去查询。可能会导致你的数据库由于压力过大而宕掉。解...

2019-04-30 14:04:17 152

转载 mysql联合索引

联合索引联合索引又叫复合索引。对于复合索引:Mysql从左到右的使用索引中的字段,一个查询可以只使用索引中的一部份,但只能是最左侧部分。例如索引是key index (a,b,c)。 可以支持a | a,b| a,b,c 3种组合进行查找,但不支持 b,c进行查找 .当最左侧字段是常量引用时,索引就十分有效。两个或更多个列上的索引被称作复合索引。利用索引中的附加列,您可以缩小搜索的范围,但使...

2019-04-30 13:57:20 146

转载 mybatis批量添加返回主键

mybatis 插入单条数据时 返回主键<selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer"> SELECT LAST_INSERT_ID() AS id</selectKey>但是当使用批量插入时则不可使用 SELECT LAST_INSERT_ID(...

2019-04-30 13:55:18 1008

空空如也

空空如也

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

TA关注的人

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