Spring中使用了哪些设计模式

1、工厂模式

在各种BeanFactory以及ApplicationContext创建中都用到了。

2、模板模式

在各种BeanFactory以及ApplicationContext实现中也都用到了。

3、代理模式

Spring AOP 利用了AspectJ AOP实现的,AspectJ AOP底层使用了动态代理。

4、策略模式

加载资源文件的方式,使用了不同的方法,如ClassPathResource,FileSystemResource,ServletContextResource,URLResource,但它们都有共同的接口Resource;

在AOP的实现中,采用了两种不同的方式,JDK动态代理和CGLIB代理。

5、单例模式

比如在创建Bean的时候。

6、观察者模式

spring的ApplicationEvent,ApplicationListener,ApplicationEventPublisher

7、适配器模式

MethodBeforeAdviceAdapter,ThorwsAdviceAdaper,AfterReturningAdapter

8、装饰着模式

源码中类型带Warpper或者Decorator的都是。

相关推荐
ShareBeHappy_Qin2 小时前
Spring 中使用的设计模式
java·spring·设计模式
W.Buffer3 小时前
Nacos配置中心:SpringCloud集成实践与源码深度解析
后端·spring·spring cloud
冼紫菜3 小时前
[特殊字符] 深入理解 PageHelper 分页原理:从 startPage 到 SQL 改写全过程
java·后端·sql·mysql·spring
程序员小凯4 小时前
Spring MVC 分布式事务与数据一致性教程
分布式·spring·mvc
problc5 小时前
Spring Cloud OpenFeign + Nacos 实战教程:像调用本地方法一样调用远程微服务
spring·spring cloud·微服务
Mu.3875 小时前
初始Spring
java·数据库·spring
超龄超能程序猿6 小时前
Spring AI Alibaba 与 Ollama对话历史的持久化
java·人工智能·spring
hrrrrb6 小时前
【Spring Security】认证(二)
java·后端·spring
cxyxiaokui0017 小时前
🔥不止于三级缓存:Spring循环依赖的全面解决方案
java·后端·spring
Asort9 小时前
JavaScript设计模式(十四)——命令模式:解耦请求发送者与接收者
前端·javascript·设计模式