Spring框架中使用了哪些设计模式及应用场景

时间:2023-03-18 20:00:45

1、工厂模式

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

2、模板模式

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

3、代理模式

SpringAOP利用了AspectJ AOP实现的,Aspectj AOP的底层用的就是动态代理

4、策略模式

a、用于加载资源文件,会使用不同的方法,比如:ClassPathResource,FileSystemResource,ServletContextResource,UrlResource,但是他们都实现了一个共同的接口Resource;
b、在Aop的实现中可以采用两种不同的方式,JDK的动态代理和cglib代理。

5、单例模式

比如我们在创建bean的时候

6、观察者模式

spring中的ApplicationListener,ApplicationEvent,ApplicationEventPublisher

7、适配器模式

MethodBeforeAdviceAdapter,ThrowAdviceAdapter,AfterReturningAdapter

8、装饰者模式

我们打开一些源码,可以看到一些类型带有Wrapper或者Decorator的都是的