Spring的设计目标

设计目标

Spring的设计目标:为开发者提供一个一站式的轻量级应用开发框架(平台),抽象了我们在许多应用开发中遇到的共性问题,简化整个开发流程。

层次划分

在设计上可以把Spring划分为核心、组件和应用三个基本层次。
核心:IOC容器、AOP模块。
组件:事务处理、web MVC、JDBC、ORM、远程调用等。
应用:使用了Spring的应用系统。

Spring核心

对于Spring来说,一方面它通过IoC容器来管理POJO对象,以及它们相互之间的耦合关系。另一方面,通过AOP以动态和非侵入式的方式来增强服务的功能。所以,我们把IoC容器和AOP模块看做spring的核心。作为核心,它们代表了最为基础的底层抽象,同时也是Spring其他模块实现的基础。

Spring组件

Spring为应用开发提供了许多即开即用的系统组件和服务,这些服务涵盖了java EE的各个基本服务,对于其他服务,也可以根据使用情况动态扩展到Spring体系中(只要依据IoC和AOP所约定好的特定模式)。基本来说,Spring体系中已经可以包括我们在应用开发中经常用到的许多服务了,比如事务处理、web MVC、JDBC、ORM、远程调用,从对用户的价值上来说,这些服务相对来说是不可忽视的。

设计理念

对Spring来说IoC和AOP就是它的核心,但如果没有我们前面提到的那些即开即用的服务,Spring的应用和推广还会遇到很大的障碍。不过值得庆幸的是,Spring通过社区和自己的努力,提供了这些看起来不起眼,却对推广起着关键作用的部分,从而构建出一个丰富的生系统。由此可以看到,这些由spring或者其生态系统提供的,类似于操作系统的驱动模块的系统组件,也是spring平台的有机组成部分。通过这部分组件提供的许多简单的即开即用的java EE服务抽象,从而使应用在通过POJO来进行具体开发时,得到java EE服务的有力支持,使应用可以更关注应用的领域问题,更关注业务逻辑。同时,由于spring使用IoC容器和AOP这样的核心模块来构建这些服务抽象和应用,它们本身的松耦合设计理念可以让应用通过使用简单的开发接口或现成的应用模块,就可以方便的使用这些java EE服务。不但如此,由于这些服务是通过IoC和AOP来提供的,对用户而言,绑定的是IoC容器和AOP模块,也就是说绑定的是IoC和AOP模块的使用接口,而不是绑定具体的java EE服务,也为应用灵活的选取不同的服务实现提供了基础。比如,根据应用需求,用户可以选择Hibernate作为ORM工具,也可以选择使用iBatis,还可以使用其他的类似工具。这些不同工具和底层服务的具体实现的选择都不影响应用的架构设计,这也体现了Spring的设计理念——面向接口开发而不依赖于具体的产品实现。

开源

作为一个开源项目,Spring本身也依赖开源社区的力量,形成了一个开放的生态系统,开源的特性也深深影响了spring的体系设计。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring框架中使用了多种设计模式来实现不同的功能。 一、工厂模式:Spring框架使用工厂模式来创建Bean对象,通过BeanFactory和ApplicationContext类来实现。 二、观察者模式:Spring事件驱动模型是基于观察者模式实现的,可以在很多场景中解耦代码。比如在添加商品时需要更新商品索引,可以使用观察者模式来实现这种功能。 三、适配器模式:Spring框架中的多个组件使用了适配器模式。例如,在Spring MVC中,DispatchServlet根据请求信息调用HanlderMapping,解析请求对应的Handler,然后由HandlerAdapter适配器进行处理。适配器将具体的目标类适配成期望的接口,从而对不同类型的Controller进行处理。 四、装饰器模式:Spring中的配置DataSource时,可以使用装饰器模式来动态切换不同的数据库和数据源,而无需直接修改原有的代码。Wrapper和Decorator类都使用了装饰器模式,通过在原有的代码外部添加额外的属性或功能来扩展新的功能。 五、策略模式:Spring框架使用策略模式来实现动态改变类的行为或算法。通过创建表示不同策略的对象和一个context对象,可以根据策略对象的改变来改变context对象的执行算法。一个例子是Spring框架的资源访问功能,使用Resource接口来访问底层资源,提供了更强的资源访问能力。 综上所述,Spring框架中使用了工厂模式、观察者模式、适配器模式、装饰器模式和策略模式等多种设计模式来实现不同的功能。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值