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的都是。

相关推荐
曹牧几秒前
Spring MVC中使用HttpServletRequest和HttpServletResponse
java·spring·mvc
callJJ1 小时前
SpringBoot 自动配置原理详解——从“约定优于配置“到源码全程追踪
java·spring boot·后端·spring
曹牧1 小时前
Spring MVC配置文件
java·spring·mvc
钝挫力PROGRAMER1 小时前
Java中如何优雅管理接口的多个实现
java·设计模式
CPUOS201010 小时前
嵌入式C语言高级编程之MVC设计模式
c语言·设计模式·mvc
希望永不加班13 小时前
Spring AOP 代理模式:CGLIB 与 JDK 动态代理区别
java·开发语言·后端·spring·代理模式
eggwyw14 小时前
基于SpringBoot和PostGIS的云南与缅甸的千里边境线实战
java·spring boot·spring
云烟成雨TD14 小时前
Spring AI Alibaba 1.x 系列【22】Agent 并行工具执行与超时 / 协作式取消实战
java·人工智能·spring
张涛酱10745615 小时前
Subagent Orchestration 深入解析:多Agent协作的层级架构
spring·设计模式·ai编程
双普拉斯16 小时前
打造工业级全栈文件管理器:深度解析上传、回收站与三重下载流控技术
spring·vue·js