Spring中用了哪些设计模式

本文深入探讨了Spring框架中运用的设计模式,包括单例模式、工厂模式、代理模式及适配器模式。单例模式确保了Bean的唯一性,工厂模式通过BeanFactory或ApplicationContext创建对象,代理模式支撑了SpringAOP,适配器模式则用于处理多种类型的Controller。

Spring中的设计模式

  • 单例模式:保证某个对象只有一个实例,对于频繁使用的对象,可以节省创建所花费的时间。Spring中 Bean 的作用域默认为 Singleton 单例的,表示单例 Bean 在IOC容器中是唯一的,这样只要 id 与 bean 相匹配,返回的就是 bean 的同一实例了。(作用域 prototype 表示每次请求都会创建一个新的 bean 实例)(IOC 容器所管理的对象,称为 bean)

  • 工厂模式:提供了一个创建对象的接口,由子类决定创建什么样的对象。Spring使用工厂模式通过 BeanFactory 或 ApplicationContext 来创建 bean 对象,它们两者的区别是,BeanFactory 是延迟注入,也就是使用到某个 bean 的时候才会创建;而 ApplicationContext 会在容器启动时,一次性创建所有的 bean。

  • 代理模式:给某个对象提供一个代理对象,类似于生活中的中介。Spring AOP 就是基于动态代理实现的。如果要代理的对象实现了某个接口,Spring AOP就会使用JDK动态代理去创建代理对象;对于没有实现接口的对象,Spring AOP 就使用 CGLIB 动态代理生成一个被代理对象的子类来作为代理。

SpringMVC用到了适配器模式

  • 在SpringMVC中,前端控制器根据请求调用 handlerMapping,解析出请求对应的 handler,然后交给适配器进行处理。因为 Controller 类型众多,通过适配器来调用对应的 handler 进行处理的话,那前端处理器就不需要自己去判断 Controller 的类型了。

Java中的 InputStream 类用到了装饰者模式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值