spring中有哪些常见的设计模式? 你的项目中用到了哪些设计模式?

本文介绍了Spring框架中常见的设计模式,如懒汉/饿汉模式的BeanFactory和ApplicationContext,单例模式与作用域,以及AOP的代理模式、模板方法模式、观察者模式、适配器模式、装饰器模式和策略模式的应用。这些模式强调了代码复用、灵活性和模块化,有助于提高系统扩展性和维护性。
摘要由CSDN通过智能技术生成

1.工厂模厂
BeanFactory:懒汉模式,在使用到Bean时才进行注入:
ApplicationContext:饿汉模式,容器启动时就创建了所有的Bean;


2.单例模式
Spring中的Bean默认为singleton单例。我们可以通过配置Bean的作用域scope参教来进行修改,Spring Bean一共有5种内置的作用域分别是singleton、prototype、request、session、globalSession。


3.代理模式
面向切面编程AOP:Aspect-0riented Programming 面向切面编程能够将和业务无关,但是是业务模块中所共同调用的逻辑或者业务功能封装起来,比如事务管理,日志管理,权限控制等 有利于减少重复代码,降低模块之间的想合度 ,并有利于面向未来的可拓展性和可维护性使AOP可以将一些通用功能抽象出来,在需要使用的地方直接使用,这样可以大大简化代码量 需要增加新功能也会更加简单方便,这样可以提高系统的扩展性


4.模板模式
。模板方法模式 是一种行为型模式,基于继承的代码复用 定义一个操作的算法骨架,将一些实现步骤延迟到子类中 模板方法使得子类可以不改变一个算法结构的情况下即可重新定义算法的某些特定步骤的实现方式

5.观察者模式
观察者模式:是一种对象行为模式 表示的是一种对象和对象之间具有依赖关系,当一个对象发生改变,依赖于这个对象的对象也会发生改变Spring事件驱动模型就是基于观察者模式实现的 Spring事件驱动模型可以在很多应用场景中解代码 比如每次添加商品时都需要更新商品索引,这时就可以使用观察者模式


6.适配器模式
适配模式:是结构型模式,也是各种结构型模式的起源 将一个接口转换为调用方需要的接口 适配使得接口不兼容的类之间可以一起工作适配器又被称为包装器Wrapper
Spring AOP中的适配器模式
Spring AOP中的增强和通知Advice使用了适配器模式,接口是AdvisorAdapter常用的Advice类型包括: BeforeAdvice: 前置通知,目标方法调用前增强 AfterAdvice: 后置通知,目标方法调用后增强
AfterReturningAdvice: 目标方法执行结束之后,return之前
每知Advice都有对应的=截: BeforeAdvice - MethodBeforeAdvicelnterceptor AfterAdvice - MethodAfterAdvicelnterceptorAfterReturningAdvice - MethodAfterReturningAdvicelnterceptorSpring中预定义的通知要通过对应的适配器,适配成为Methodinterceptor接口类型的对象
Spring MVC中的适配器模式Spring MVC中,Dispatchservlet根据请求信息调用HanlderMapping,解析请求对应的Handler,解析到对应的Handler后,开始由HandlerAdapter适配器进行处理
HandlerAdapter作为期望接口,具体的适配器实现类对具体目标类进行适配controller作为需要适配的类通过使用适配器AdapterHandler可以对Spring MVC中众多类型的Controller通过不同的方法对请求进行处理

七、装饰器模式
装饰器模式: 动态地给对象添加一些额外的属性或者行为 和继承相比,装饰器模式更加灵活装饰器模式使用场景: 当需要修改原有的功能,但是不想直接修改原有的代码,就可以设计一个装饰器Decorator类在原有的代码的外面,这样
可以在不修改原有的类的基础上扩展新的功能spring中配置Datasource时,Datasource可以是不同的数据库和数据源,为了在少修改原有类的代码下动态切换不同的数据源 这时就用到了装饰器模式
Spring中含有Wrapper和含有Decorator的类都用到了装时期模式,都是动态地给一个对象添加一些额外的属性或者功能


八、策略模武
在策略模式(Strategy Pattern) 中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 ontext 对象的执行算法
Spring框架的资源访问Resource接口,该接口提供了更强的资源访问能力,Spring 框架本身大量使用了 Resource 接口来访问底层资

  • 11
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值