网站Logo Ilren 小记
Home
Java
Docker
Links
About
登录

Spring Boot 缓存穿透解决方案

一、什么是缓存穿透? 缓存穿透是指:客户端请求的数据在缓存中查不到,数据库中也没有,导致每次请求都打到数据库。 场景示例: 用户请求一个 id=-1 的数据。 缓存中查不到,去数据库查,也没有该数据。 每次请求都绕过缓存打到数据库。 大量这类请求形成“洪水攻击”,压垮数据库。

2023-12-25
4
0
Java
SpringBoot

Spring Boot事务管理:@Transactional的六个隐藏陷阱

在使用 Spring Boot 构建业务系统时,@Transactional 是最常见的事务控制注解。然而,你是否遇到过这样的情况: 明明加了 @Transactional,却没有回滚? 异常发生了,数据还是被提交了? 数据源没问题,事务却像失效了一样? 这些问题往往源于我们对 @Transacti

2023-12-23
4
0
Spring
SpringBoot
Transaction

SpringBoot多数据源场景下,@Transactional 为什么不生效?实战排查记录

前几天,部门一个同事来找我,说他遇到了一个很奇怪的事务问题,代码明明加了 @Transactional,但是操作数据库的时候却没有回滚,数据依然写进去了。 他已经 debug 一下午了都没解决,我接手后一看,果然,这又是一个Spring Boot 多数据源事务配置引发的“老毛病”…… 这篇文章就来记

2023-06-14
13
0
SpringBoot
Java
Transaction

Spring Bean 生命周期详解

引言 在使用 Spring 开发时,Bean 是我们接触最频繁的组件。了解 Spring Bean 的生命周期,不仅能帮我们更好地掌握 Spring 容器的工作原理,还能在实际项目中优雅地管理资源、执行初始化或清理逻辑。 本文将从整体流程出发,逐步拆解 Spring Bean 的生命周期,并配以图示

2021-07-20
8
0
Java
SpringBoot

Spring Boot 自动配置原理详解:为什么你什么都没配,系统却能正常运行?

在使用 Spring Boot 开发项目时,你可能会惊讶地发现:只引入几个依赖、写一个启动类,项目就能直接跑起来。甚至数据库、Redis、Web MVC 这些组件都能自动配置好,一切似乎“理所当然”。 但你有没有想过:Spring Boot 到底是怎么做到“自动配置”的?你没配的它帮你配了,你配了的

2021-07-17
4
0
SpringBoot
Java

SpringBoot 启动流程详解

引言 Spring Boot 的启动流程可简化为以下步骤: 入口触发:通过 @SpringBootApplication 主类的 main 方法调用 SpringApplication.run()。 环境准备

2021-07-15
11
0
Java
SpringBoot

Spring Boot 常用注解详解

引言 Spring Boot 作为当今 Java 领域最流行的框架之一,其强大的自动配置和约定优于配置的理念极大地简化了 Spring 应用的开发。注解(Annotation)作为 Spring Boot 的核心特性之一,为开发者提供了声明式编程的能力。本文将全面介绍 Spring Boot 开发中

2021-05-07
10
0
Java
SpringBoot

SpringBoot使用ThreadLocal线程上下文传递数据

最近在开发项目时需要在拦截器中请求认证服务判断token的有效性并获取用户信息,但是拿到用户信息后需要传递给Controller层或者Service层去使用。一开始想到了使用header和session传递用户信息,但是感觉不是很优雅,有点low,最后想到了使用ThreadLocal多线程上下文传递

2020-08-11
6
0
Java
SpringBoot

SpringBoot+@Valid参数校验+统一异常处理

 我们在项目开发过程中controller层方法入参检验中存在一个问题,就是会对参数进行校验。以往我们就会写大量的if else 来对参数进行判断,但是大量的入参校验也使得代码十分的不友好!所以本文主要介绍了在SpringBoot中@Valid参数校验及参数错误的统一异常处理。 开发环境 Java版

2020-01-10
8
0
Java
SpringBoot