Spring框架中的8种设计模式

前言

Spring框架中的8种设计模式分别是:1、简单工厂。2、工厂方法。3、单例模式。4、适配器模

式。5、装饰器模式。6、代理模式。7、观察者模式。8、策略模式.

1、简单工厂

Spring中的BeanFactory 就是简单工厂模式的体现,根据传入一个唯一的标识来获得Bean对象

但是否在传入参数后创建还是传入参数前创建这个要根据具体情况来定。

2、工厂方法

实现了FactoryBean接口的bean是一类叫做factory的bean。其特点是Spring会在使用getBean()调

用获得该bean时,会自动调用该bean的getObject()方法,所以返回的不是factory这个bean,而是

这个bean.getOjbect()方法的返回值。

3、单例模式

Spring依赖注入Bean实例默认是单例的

Spring的依赖注入(包括lazy-init方式)都是发生在AbstractBeanFactory的getBean里。getBean的

doGetBean方法调用getSingleton进行bean的创建。

4、适配器模式

SpringMVC中的适配器HandlerAdatper

HandlerAdatper使得Handler的扩展变得容易 ,只需要增加一个新的Handler和一个对应的

HandlerAdapter

因此Spring定义了一个适配接口,使得每一种Controller有一种对应的适配器实现类,让适配器代

替controller执行相应的方法。这样在扩展Controller时,只需要增加一个适配器类就完成了

SpringMVC的扩展了。

5、装饰器模式

Spring中用到的包装器模式在类名上有两种表现:

一种是类名中含有Wrapper ,另一种是类名中含有Decorator

动态地给一个对象添加一些额外的职责。

就增加功能来说,Decorator模式相比生成子类更为灵活。

6、代理模式

Spring中AOP的底层 ,就是动态代理模式的实现。

7、观察者模式

Spring 基于观察者模式 ,实现了自身的事件机制也就是事件驱动模型,事件驱动模型通常也被理

解成观察者或者发布/订阅模型。

8、策略模式

Spring框架的资源访问Resource接口。该接口提供了更强的资源访问能力,Spring 框架本身大量

使用了Resource 接口来访问底层资源。

Rsource 接口是具体资源访问策略的抽象,也是所有资源访问类所实现的接口。

Resource 接口本身没有提供访问任何底层资源的实现逻辑,针对不同的底层资源,Spring 将会提

供不同的Resource 实现类,不同的实现类负责不同的资源访问逻辑。

相关推荐
Ylucius30 分钟前
动态语言? 静态语言? ------区别何在?java,js,c,c++,python分给是静态or动态语言?
java·c语言·javascript·c++·python·学习
七夜zippoe1 小时前
分布式系统实战经验
java·分布式
是梦终空1 小时前
JAVA毕业设计176—基于Java+Springboot+vue3的交通旅游订票管理系统(源代码+数据库)
java·spring boot·vue·毕业设计·课程设计·源代码·交通订票
落落落sss1 小时前
sharding-jdbc分库分表
android·java·开发语言·数据库·servlet·oracle
码爸1 小时前
flink doris批量sink
java·前端·flink
Monodye2 小时前
【Java】网络编程:TCP_IP协议详解(IP协议数据报文及如何解决IPv4不够的状况)
java·网络·数据结构·算法·系统架构
一丝晨光2 小时前
逻辑运算符
java·c++·python·kotlin·c#·c·逻辑运算符
无名指的等待7122 小时前
SpringBoot中使用ElasticSearch
java·spring boot·后端
Tatakai253 小时前
Mybatis Plus分页查询返回total为0问题
java·spring·bug·mybatis
武子康3 小时前
大数据-133 - ClickHouse 基础概述 全面了解
java·大数据·分布式·clickhouse·flink·spark