Spring框架中使用了哪些设计模式及应用场景?
1、工厂模式:在各种BeanFactory以及ApplicationContext创建中都用到了。
2、模版模式:在各种BeanFactory以及ApplicationContext实现中都用到了。
3、代理模式:在Spring AOP利用了 aop实现的,aop底层用到了动态代理。
4、策略模式:加载资源文件的方式 ,使用了不同的方法,比如:ClassPathResource,FileSystemResource,ServletContextResource,UrlResource 但他们都有共同的接口Resource;在aop的实现中,采用了两种不同的方式,JDK动态代理和CGLIB代理。
5、单例模式:比如在创建bean的时候。
6、观察者模式:Spring中的ApplicationEvent,ApplicationListener,ApplicationEventPublisher
7、适配器模式:MethodBeforeAdviceAdapter,ThrowsAdviceAdapter,AfterReturningAdapter
8、装饰者模式:源码中类型带Wrapper或者Decorator的都是