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

相关推荐
LUCIAZZZ4 小时前
简单介绍分布式定时任务XXL-JOB
java·spring boot·分布式·spring·操作系统·定时任务
bing_1584 小时前
Spring MVC Controller 方法的返回类型有哪些?
java·spring·mvc
奔驰的小野码4 小时前
SpringAI实现AI应用-内置顾问
java·人工智能·后端·spring
大三开学菜鸟4 小时前
记录一下spring-cloud-starter-alibaba-nacos-config 2023.0.3.2与springboot版本及配置问题
java·spring boot·后端·spring·intellij-idea
qqxhb5 小时前
零基础学Java——第九章:数据库编程(三)
java·数据库·spring·mybatis
triticale5 小时前
【Spring】Spring MVC笔记
笔记·spring·mvc
yuren_xia9 小时前
Spring MVC中跨域问题处理
java·spring·mvc
一个憨憨coder10 小时前
Spring 如何解决循环依赖问题?
java·后端·spring
飞升不如收破烂~15 小时前
Spring 中四种常见初始化方法,对比 static {} 和 @PostConstruct 在并发,Spring 加载顺序大致为: JVM 加载类
java·jvm·spring
来自星星的坤15 小时前
Spring Boot 中如何解决 CORS 问题(详解)
java·spring·springboot