总结一个完整的 Spring 生态系统设计模式表格 Spring 全家桶设计模式终极总结设计模式一句话核心最佳使用场景Spring/Spring Boot/Spring Cloud 应用企业级最佳组合单例模式一个类只有一个实例全局唯一访问点1. 配置管理器2. 连接池3. 日志对象4. 缓存Spring 单例 BeanScope(“singleton”)单例 工厂模式Bean 管理工厂模式你只管要我负责造统一创建入口1. Bean 实例化2. 不同类型对象创建3. 隐藏创建细节BeanFactory、ApplicationContext.getBean()工厂 单例 模板方法Bean 生命周期抽象工厂模式产品族创建一次创建一系列相关产品1. 数据源切换MySQL/Oracle2. 多种缓存适配Spring Data、MyBatis Plus 多数据源抽象工厂 策略动态切换建造者模式链式构建复杂对象分步骤创建1. BeanDefinition 构建2. ConfigurationProperties 配置3. Request/Response 对象建造Builder 注解、Lombok Builder建造者 工厂复杂对象创建原型模式克隆创建性能优于 new1. 多例 Bean2. 频繁创建的相似对象Spring 原型 BeanScope(“prototype”)原型 工厂快速创建代理模式间接调用在调用前后增强1. AOP 切面2. 事务管理3. 远程调用4. 缓存JDK 动态代理、CGLIB 代理、Spring AOP、Feign、Ribbon代理 装饰器 责任链AOP 链装饰器模式动态增强不改变原有结构1. HttpServletRequest/Response 包装2. IO 流3. 缓存装饰Spring Security、Spring Session、TransactionProxy装饰器 代理多层增强适配器模式接口不兼容适配一下1. HandlerAdapter2. WebMvcConfigurer3. 数据源适配器Spring MVC HandlerAdapter、Spring Integration适配器 策略灵活适配桥接模式抽象与实现分离独立变化1. JDBC 驱动桥接2. 日志框架桥接3. 消息队列桥接Spring Data JPA、SLF4J、Spring AMQP桥接 策略多种实现外观模式对外简单内部复杂统一入口1. ApplicationContext2. Spring Boot Starter3. API 网关Spring Boot、Spring Cloud Gateway、Zuul门面 工厂 单例统一管理享元模式共享对象减少内存占用1. 字符串常量池2. 连接池3. 缓存对象Spring 缓存抽象、数据库连接池、Redis 连接池享元 单例共享资源组合模式树形结构整体与部分一致对待1. FilterChain2. InterceptorChain3. 对象树Spring Security Filter Chain、Spring MVC Interceptor组合 责任链树状处理模板方法模式固定骨架可变步骤流程标准化1. Bean 生命周期2. JdbcTemplate3. RedisTemplate4. AbstractRoutingDataSourceDefaultListableBeanFactory、Spring Data、Spring Boot 自动配置模板方法 工厂 策略标准化流程策略模式多种算法运行时动态选择1. Condition 条件判断2. LoadBalancer 负载均衡3. 加密算法4. 序列化方式Spring Boot 自动配置、Ribbon、Spring Security、Jackson策略 工厂动态选择状态模式对象行为随状态改变1. 事务状态管理2. 生命周期状态3. 连接状态Spring StateMachine、事务管理器、连接池状态状态 策略状态转换观察者模式事件驱动发布订阅一对多通知1. ApplicationEvent2. EventListener3. ConfigRefreshEvent4. 服务发现Spring 事件机制、Spring Cloud Config、Nacos 服务发现观察者 事件源松耦合通信责任链模式链式处理依次传递可终止1. Filter 链2. Interceptor 链3. AOP 拦截链4. Sentinel 熔断降级链Spring Security、Spring MVC、Spring Cloud Gateway、Sentinel责任链 装饰器 组合多层过滤命令模式请求封装成对象参数化、可撤销1. Controller 方法调用2. 异步任务3. 事务命令Spring MVC Handler、Async、Transactional、CommandLineRunner命令 观察者事件驱动备忘录模式状态保存支持回滚1. 事务回滚2. Session 保存3. 配置快照Spring Transaction、Spring Session、配置中心版本管理备忘录 状态状态恢复解释器模式语法解析表达式求值1. SpEL 表达式2. Query 注解3. 配置属性解析Spring Expression Language (SpEL)、Spring Data JPA解释器 策略多种解析迭代器模式遍历集合不暴露内部结构1. Bean 迭代2. 集合遍历3. 分页查询Spring Data JPA 分页、Stream API迭代器 组合树形遍历访问者模式操作与数据分离动态添加操作1. BeanPostProcessor2. BeanDefinitionVisitor3. AST 访问Spring BeanPostProcessor、Spring ConfigurationMetadata访问者 迭代器遍历处理中介者模式解耦多对象通信集中协调1. ApplicationContext2. Service Mesh3. 消息总线Spring 容器、Spring Cloud Bus、Istio中介者 观察者协调通信MVC 模式模型-视图-控制器分离1. Spring MVC2. WebFlux3. RESTful APISpring MVC、Spring WebFlux、Spring Boot WebMVC 策略 模板Web 框架 企业级设计模式黄金组合1.Bean 管理铁三角单例模式 工厂模式 模板方法模式应用场景Spring IoC 容器一句话用工厂统一创建单例保证唯一模板方法规范生命周期2.AOP 增强三剑客代理模式 装饰器模式 责任链模式应用场景Spring AOP、事务管理、权限控制一句话代理提供间接调用装饰器动态增强责任链多层拦截3.Web 开发黄金组合MVC 模式 策略模式 模板方法模式应用场景Spring MVC、RESTful API一句话MVC 分层架构策略动态路由模板规范处理流程4.微服务服务发现观察者模式 策略模式 中介者模式应用场景Spring Cloud Eureka/Nacos/Consul一句话观察者监听服务变化策略选择服务中介者协调通信5.配置管理组合建造者模式 观察者模式 享元模式应用场景Spring Cloud Config、Apollo/Nacos一句话建造者构建配置观察者监听变化享元共享配置6.网关过滤器链责任链模式 装饰器模式 策略模式应用场景Spring Cloud Gateway、Zuul、Sentinel一句话责任链顺序处理装饰器动态增强策略路由选择7.事务管理组合代理模式 模板方法模式 备忘录模式应用场景Transactional、Spring Transaction一句话代理拦截方法模板管理流程备忘录支持回滚8.缓存管理组合装饰器模式 策略模式 享元模式应用场景Spring Cache、Redis、Caffeine一句话装饰器透明缓存策略选择实现享元复用对象 面试高频考点速查表考点对应模式一句话回答Spring IoC 原理工厂 单例 模板方法工厂创建 Bean单例缓存模板方法管理生命周期Spring AOP 原理代理 装饰器 责任链JDK/CGLIB 代理装饰器增强责任链执行Spring MVC 流程MVC 策略 模板方法DispatcherServlet 分发HandlerMapping 策略匹配ViewResolver 渲染Spring Boot 自动配置策略 工厂 模板方法Conditional 策略判断工厂创建 Bean模板规范配置Spring Cloud 服务发现观察者 策略 中介者监听服务变化策略选择实例服务中心协调Spring 事务代理 模板 备忘录AOP 代理拦截事务模板管理状态保存支持回滚 记忆口诀单例工厂模板建 Bean 代理装饰责任做增强 门面统一简化入口 观察事件解耦合 策略算法灵活选 组合模式树形连 MVC 分离关注点 以上混合威力显这个表格涵盖了 Spring/Spring Boot/Spring Cloud 生态系统中24 种核心设计模式以及8 种企业级最佳组合