欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 美景 > spring中用到的设计模式

spring中用到的设计模式

2025/3/10 5:37:16 来源:https://blog.csdn.net/weixin_45530192/article/details/146069600  浏览:    关键词:spring中用到的设计模式

1. 单例模式(Singleton Pattern)

应用场景:Spring 默认的 Bean 作用域为单例,确保容器中每个 Bean 仅有一个实例,节省资源并提高性能。
实现方式:通过 BeanFactory 或 ApplicationContext 管理单例 Bean,使用 ConcurrentHashMap 存储单例实例。

2. 工厂模式(Factory Pattern)

简单工厂:BeanFactory 根据配置动态创建 Bean,例如通过 XML 或注解定义 Bean 的创建逻辑。
工厂方法:通过 @Bean 注解在配置类中定义工厂方法,例如自定义 FactoryBean 实现复杂对象的创建。
抽象工厂:ApplicationContext 作为高级工厂,扩展了 BeanFactory 的功能,支持国际化、事件发布等。

3. 代理模式(Proxy Pattern)

应用场景:Spring AOP 基于代理模式实现,通过 JDK 动态代理或 CGLIB 生成代理类,在目标方法前后添加日志、事务等横切逻辑。
核心实现:ProxyFactory 和 JdkDynamicAopProxy 负责生成代理对象。

4. 模板方法模式(Template Method Pattern)

应用场景:JdbcTemplate、RestTemplate 等封装通用操作流程(如数据库连接管理),将具体实现(如 SQL 执行)延迟到回调方法。
优势:减少重复代码,提升扩展性。

5. 观察者模式(Observer Pattern)

应用场景:Spring 事件机制(如 ApplicationEvent 和 ApplicationListener)实现解耦的事件发布与订阅,例如容器启动、Bean 初始化完成等事件的通知。

6. 适配器模式(Adapter Pattern)

应用场景:Spring MVC 中的 HandlerAdapter 将不同处理器(如 Controller)适配到统一的请求处理流程中。
示例:RequestMappingHandlerAdapter 处理基于注解的控制器方法。

7. 策略模式(Strategy Pattern)

应用场景:资源加载策略(如 Resource 接口的不同实现类)、事务管理策略等,允许运行时动态选择算法。
扩展性:通过 BeanPostProcessor 接口支持自定义策略扩展。

8. 装饰器模式(Decorator Pattern)

应用场景:包装对象以增强功能,例如 Spring 的事务管理包装数据源,或在 AOP 中动态添加行为。

9. 原型模式(Prototype Pattern)

应用场景:通过设置 Bean 的 scope=“prototype”,每次请求生成新实例,适用于需要状态隔离的场景。

10. 依赖注入模式(Dependency Injection)

核心机制:Spring 通过构造器注入、Setter 注入等方式解耦对象依赖关系,由容器管理 Bean 的生命周期。

其他设计模式

责任链模式:用于拦截器链(如 HandlerInterceptor)处理请求。
组合模式:CompositeCacheManager 组合多个缓存管理器。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词