如何通过三级缓存解决 Spring 循环依赖

以下内容基于 Spring6.0.4。 这个其实是一个特别高频的面试题,也一直很想和大家仔细来聊一聊这个话题,网上关于这块的文章很多,但是我一直觉得要把这个问题讲清楚还有点难度,今天我来试一试,看能不能和小伙伴们把这个问题梳理清楚。 1. 循环依赖 1.1 什么是循环依赖 首先,什么是循环依赖?这个其实好理解,就是两个 Bean 互相依赖,类似下面这样:…

hello hello 发布于 2023-09-11

聊聊MyBatis缓存机制

前言 MyBatis是常见的Java数据库访问层框架。在日常工作中,开发人员多数情况下是使用MyBatis的默认缓存配置,但是MyBatis缓存机制有一些不足之处,在使用中容易引起脏数据,形成一些潜在的隐患。个人在业务开发中也处理过一些由于MyBatis缓存引发的开发问题,带着个人的兴趣,希望从应用及源码的角度为读者梳理MyBatis缓存机制。…

hello hello 发布于 2023-09-11

Java 21 新特性:String Templates

在日常写Java的时候,对于字符串的操作是非常普遍的,其中最常见的就是对字符串的组织。也因为这个操作非常普遍,所以诞生了很多方案,总下来大概有这么几种: 使用 + 拼接 使用 StringBuffer 和 SpringBuilder String::format and String::formatted 使用…

hello hello 发布于 2023-09-10

软件研发的道德情操

文章摘要:两百多年前苏格兰出了一位大哲学家,他的名字叫做亚当·斯密。今天人们对他的了解更多是在经济学家这个身份,都认为是他发现了“看不见的手”这一神奇的经济规律,以及他那本著名的《国富论》。…

hello hello 发布于 2023-09-10

Redis过期回调一场灾难性之旅(redis过期回调的坑)

Redis是一个流行的NoSQL数据库系统,被广泛应用于各种场景中。然而,在使用Redis时,我们经常会遇到一些问题,其中之一就是过期键回调问题。过期回调是指在Redis中,当一个键被设置了过期时间后,如果在过期时间到达之前这个键被更新了,那么原来设置的过期时间就会失效。这种情况下,我们需要一种方法来处理这个过期事件。…

hello hello 发布于 2023-09-09

Java各种线程死锁问题

病症 web服务跑着跑着响应越来越慢,最终网页白页的,一查进程还活着,socket连接高,十有八九线程死锁没得到释放,最后没线程资源执行任务导致白页等待。 最有效的排查方法 最直接的排查方法就是,dump下内存快照,去查看线程信息,看看是否有大量的线程处于等待状态。基本上就能定位是哪里的问题。 常见的几种线程死锁的场景…

hello hello 发布于 2023-09-07

UML相关工具推荐

UML 意义 很多时候,客户跟产品经理交流,产品经理再跟开发交流,开发再和其他开发交流。在沟通的过程中,很多需求可能变了味,不再是客户最开始所描述的。其根本原因在于每个人的思维方式和理解能力是不同的。UML 的意义就是它定下了一套建模的标准,把抽象的文字转换成了更形象的图形。你拿一个时序图或者活动图比你巴拉巴拉讲半天更能让其他人明白整个业务流程的流转交互。…

hello hello 发布于 2023-09-07

Hystrix配置总结

Spring 搭建微服务的时候,比较常用的http客户端工具就是 Feign,以其声明的方式来编写 HTTP 请求。涉及到微服务请求,就一定要设置请求超时时间和熔断策略,来避免因为单一服务卡死导致的集群雪崩等灾难性事件。 具体的 Feign 和 Hystrix 如何集成,Spring 官方都有对应的 Demo,下面主要是分析一下熔断策略的配置。…

hello hello 发布于 2023-09-07

SpringBoot整合MinIO

[toc] MinIO简介 MinIO是一款基于Go语言开发的高性能、分布式的对象存储系统,开源可商用。一开始就被设计为服务于私有云、公有云、混合云,因此在高可用、可扩展性、高性能方面有得天独厚的优势。 MinIO完全实现了AWS S3…

hello hello 发布于 2023-09-06
上一页 下一页