如何设计一个 Spring Boot Redis Starter?
📌 如何设计一个 Spring Boot Redis Starter?
🎯 一、Starter整体结构
🚀 二、核心组成
① RedisProperties(配置类)
负责读取 application.yml 中的配置,将配置项绑定到 Java 对象。
对应配置如下:
只负责读取配置,不负责创建任何 Bean。
② RedisAutoConfiguration(自动配置类)
这是整个 Starter 最核心的类,负责自动创建所有 Redis 相关 Bean。
主要负责自动注册:
- RedisConnectionFactory
- RedisTemplate
- RedisService
- RedisLockService
- RedisCacheService
例如:
统一完成 Bean 注册,实现自动装配。
③ RedisTemplateConfig
负责创建并配置 RedisTemplate。
通常需要配置:
- RedisConnectionFactory
- Key 序列化
- Value 序列化
- HashKey 序列化
- HashValue 序列化
例如:
④ RedisService
Starter 通常不会直接暴露 RedisTemplate,而是封装一层统一接口。
屏蔽 RedisTemplate 底层复杂 API,统一业务调用方式。
⑤ RedisServiceImpl
负责真正操作 RedisTemplate。
通常封装:
- String
- Hash
- List
- Set
- ZSet
- TTL
- 批量删除
⑥ RedisLockService
很多公司都会在 Starter 中直接提供分布式锁能力。
底层可以基于:
- SET NX PX
- Lua脚本
- Redisson
⑦ RedisCacheService
统一封装缓存能力,而不是让业务直接操作 Redis。
⑧ RedisSerializerFactory
负责根据配置动态创建序列化器。
例如:
内部统一返回对应 Serializer。
⑨ RedisExceptionHandler
统一处理 Redis 相关异常,例如:
- 连接失败
- 连接超时
- 序列化异常
- 连接池耗尽
⑩ RedisHealthIndicator
集成 Spring Boot Actuator 后,可以自动检测 Redis 健康状态。
访问:
⑪ AutoConfiguration.imports
Spring Boot 3.x 中,通过 AutoConfiguration.imports 注册自动配置类。
内容:
🔥 三、整体执行流程
一个完整的 Spring Boot Redis Starter 通常包含配置类(RedisProperties)、自动配置类(RedisAutoConfiguration)、RedisTemplate 配置类、业务接口(RedisService)、默认实现(RedisServiceImpl)、缓存服务、分布式锁服务、序列化工厂、异常处理、健康检查以及 AutoConfiguration.imports 等组件。其中 RedisAutoConfiguration 是整个 Starter 的核心,负责根据配置自动创建 Bean,实现真正的开箱即用。
相关文章
-
MySQL主键是有序的好,还是无序的好?
MySQL主键是有序的好,还是无序的好?
NEW个对象 2026-06-25
-
SpringBoot常用注解总结
@SpringBootApplication,@EnableAutoConfiguration,@Configuration
NEW个对象 2025-01-11
-
nacos常用注解以及使用
1、@EnableDiscoveryClient 作用:启用服务发现功能。可标注在主应用类上。
NEW个对象 2025-01-21