01-Spring中的设计模式

spring 中使用的设计模式

Java Spring框架中广泛使用了各种设计模式,以提高代码的灵活性、可维护性和可扩展性。以下是Spring模块及其使用的设计模式:

1. Spring Core

  • 单例模式 (Singleton Pattern)
    • Spring的Bean默认是单例的,通过Spring容器管理Bean的生命周期,确保每个Bean只有一个实例。
  • 工厂方法模式 (Factory Method Pattern)
    • 使用BeanFactoryApplicationContext来创建和管理Bean的实例。
  • 模板方法模式 (Template Method Pattern)
    • 使用在诸如AbstractApplicationContext中的refresh()方法,它定义了一个算法的骨架,而一些步骤由子类实现。

2. Spring AOP (Aspect-Oriented Programming)

  • 代理模式 (Proxy Pattern)
    • Spring AOP使用JDK动态代理或CGLIB字节码生成来创建代理对象,以实现切面功能。
  • 装饰模式 (Decorator Pattern)
    • AOP切面可以看作是在不改变目标对象的情况下,动态地为目标对象添加职责。

3. Spring Data

  • 模板方法模式 (Template Method Pattern)
    • JdbcTemplate, JpaTemplate, MongoTemplate等,提供了一种方法来执行数据库操作,而底层的资源管理和异常处理是由模板类实现的。
  • 策略模式 (Strategy Pattern)
    • 在Spring Data Repositories中,使用不同的查询策略(如查询方法名称解析、@Query注解、QueryDSL等)来实现数据访问。

4. Spring MVC

  • 前端控制器模式 (Front Controller Pattern)
    • DispatcherServlet充当前端控制器,处理所有的HTTP请求,并将它们分派到合适的处理器。
  • 适配器模式 (Adapter Pattern)
    • 处理器适配器(如HandlerAdapter接口及其实现类)用于将不同类型的处理器(如Controller接口、注解驱动的控制器)适配到DispatcherServlet
  • 模板方法模式 (Template Method Pattern)
    • 在请求处理过程中,AbstractController类定义了一个通用的处理流程,而具体的处理逻辑由子类实现。

5. Spring Security

  • 责任链模式 (Chain of Responsibility Pattern)
    • 安全过滤器链(FilterChainProxy)使用责任链模式来处理每个请求,每个过滤器依次处理请求或将其传递到链中的下一个过滤器。
  • 策略模式 (Strategy Pattern)
    • 在身份验证和授权过程中使用策略模式,如AuthenticationProviderAccessDecisionManager

6. Spring Cloud

  • 外观模式 (Facade Pattern)
    • Spring Cloud提供了一系列的组件,如Feign,简化了分布式系统中微服务之间的通信,使得用户只需使用简单的API调用即可。
  • 代理模式 (Proxy Pattern)
    • 在负载均衡和服务调用中使用,如Ribbon和Feign,Feign使用动态代理生成服务调用代码。

7. Spring Boot

  • 建造者模式 (Builder Pattern)
    • SpringApplicationBuilder用于构建和配置Spring Boot应用程序。
  • 模板方法模式 (Template Method Pattern)
    • 在Spring Boot自动配置过程中,使用模板方法模式来定义配置步骤,而具体的配置细节由不同的自动配置类实现。

8. Spring Batch

  • 责任链模式 (Chain of Responsibility Pattern)
    • 在批处理任务中,通过步骤执行器(StepExecutionListener)和任务执行器(Tasklet)来处理任务执行的每个阶段。
  • 模板方法模式 (Template Method Pattern)
    • AbstractStep类定义了批处理步骤的执行流程,而具体的步骤逻辑由子类实现。

9. Spring Integration

  • 中介者模式 (Mediator Pattern)
    • 使用消息通道和消息网关将不同的系统组件集成在一起,简化了组件之间的交互。
  • 责任链模式 (Chain of Responsibility Pattern)
    • 使用消息过滤器和路由器将消息传递到适当的处理器。

Spring框架通过这些设计模式,有效地解决了复杂系统中的各种问题,使得开发者能够以一种模块化、可维护和可扩展的方式构建应用程序。

  • 21
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值