background picture of the home page

mifuRD

山高路远,止不住行者征程。

微信:mifuCN | 电话:15761226890
最近在学习AI应用开发的相关知识(LangChain、Spring AI Alibaba等框架),先在个人博客中落地一些功能试试效果。顺便抽空看看《深入理解Java虚拟机》。

自调用导致的事务失效

本文指出了一个Spring声明式事务失效的常见问题。当一个类中的方法(如`autoMatch`)通过`this`关键字直接调用同一个类中另一个被`@Transactional`注解标记的方法(如`manualMatch`)时,声明式事务会失效。 根本原因在于,Spring的声明式事务是基于AOP代理实现的。通过`this`进行的内部调用会绕过代理对象,直接调用目标方法,导致事务增强逻辑无法被执行。 正确的解决方案是,必须通过Spring容器管理的代理Bean来发起调用。如文中的示例,通过`SpringUtil.getBean()`获取当前类的代理实例,再用该实例调用事务方法,即可确保事务被正确应用。 由米芾AI生成,内容仅供参考!

thumbnail of the cover of the post

解决-win11-端口被-hyper-v-wsl2随机保留(占用)的问题

本文旨在解决Win11中因Hyper-V或WSL2随机保留端口,导致常用开发端口(如8088)无法使用的问题。其根本原因是Windows的“TCP动态端口范围”因故被重置为从低端口号开始,Hyper-V在此范围内保留端口时便引发了冲突。重启服务或电脑仅是碰运气的临时方案。根本性的解决方法是:以管理员身份运行`netsh`命令,将动态端口范围的起始端口手动设置为一个较高的值(如49152),然后重启电脑。这样可以有效避免系统保留常用端口,一劳永逸地解决问题。 由米芾AI生成,内容仅供参考!

thumbnail of the cover of the post

小学期

title: “芾医疗” date: “2022-09-25” categories: “project” 医疗项目 基于SpringCloud+Vue的医院挂号系统 本项目是一个完整的微服务预约挂号平台,包含 3 个系统: 预约挂号系统前台 预约挂号系统管理员后台 外部医院管理后台 技术栈 前端

thumbnail of the cover of the post

消息的最终一致性

本文探讨了“可靠消息最终一致性”方案,以解决分布式事务难题。文章以“下单送积分”为例,对比分析了五种消息投递方式的演进过程。文章指出,将消息投递与本地事务强耦合(事务内或事务后直接发送)存在数据不一致的风险。推荐的优化方案是:引入独立的消息服务,在执行本地事务前预存“待发送”消息,待本地事务成功提交后再确认发送。该方案通过将远程调用移出本地事务,提升了系统性能和可靠性,并辅以定时任务和回查机制来处理异常,最终确保消息的可靠投递和数据一致性。 由米芾AI生成,内容仅供参考!

thumbnail of the cover of the post