Spring技术内幕--(1)Spring的设计理念和整体架构

一、Spring的设计目标

1、设计理念

在Java EE的应用开发中,支持POJO和使用JavaBean的开发方式,使应用面向接口开发,充分支持OO(面向对象)的设计方法。

2、与传统Java EE开发的区别

(1)在Java EE应用开发中,传统的EJB开发需要依赖按照J2EE规范实现的J2EE应用服务器。在应用设计,特别是在实现时,往往需要遵循一系列的接口标准,才能够在应用服务器的环境中得到测试和部署。这种开发方式,使应用在可测试性和部署上都会受到一些影响。Spring的设计理念采用了相对EJB而言的轻量级开发思想,即使用POJO的开发方式,只需要使用简单的Java对象或者JavaBean就能进行Java EE开发,这样开发的入门、测试、应用部署都得到了简化。
(2)在应用开发中,往往会涉及复杂的对象耦合关系,如果在Java代码中处理这些耦合关系,对代码的维护性和应用扩展性会带来许多不便。而使用Spring作为应用开发平台,通过使用Spring的IOC容器,可以对这些耦合关系(对Java代码而言)实现一个文本化、外部化的工作,也就是说,通过一个或几个XML文件。我们就可以方便地对应用对象的耦合关系进行浏览、修改和维护,这样,在很大程度上简化了应用开发。同时,通过IOC容器实现的依赖反转,把依赖关系的管理从Java对象中解放出来,交给了IOC容器(或者说是Spring框架)来完成,从而完成了对象之间的关系解耦:原来的对象-对象的关系,转化为对象-IOC容器-对象的关系,通过这种对象-IOC容器-对象的关系,更体现出IOC容器对应用的平台作用。

二、Spring的整体架构

在Spring中,大致按照一个参考关系,将其划分为几个层次,比如IoC容器、AOP核心模块、封装的Java EE服务、作为中间的驱动组件、其它作为上层的应用。
从技术上看,Spring是封装的很清晰的一个分层架构,可以参照下图。

Spring技术内幕--(1)Spring的设计理念和整体架构_第1张图片

通过上述架构图,我们可以了解到以下Spring基本组成模块。

(1)Spring IoC:最为基本的IoC容器BeanFactory的接口与实现。比如:XmlBeanFactory,FileSystemXmlApplicationContext等。

(2)Spring AOP:Spring AOP的核心模块。

(3)Spring MVC:Spring MVC模块,主要用于Web开发。

(4)Spring JDBC/Spring ORM:SpringJDBC操作封装。

(5)Spring事务处理:Spring AOP实现的增强的事务 处理模块。

(6)Spring远端调用:Spring远端调用模块。

三、Spring的优势:

(1)Spring是一个非侵入式的框架,其目标是师程序对框架的依赖性最小,代码可以在其他没有Spring的平台上使用。

(2)Spring提供了一个一致的编程风格,直接使用POJO开发。

(3)Spring使我们的编程风格向面向接口风格转变。

(4)Spring改进了平台风格,可以使我们很好的和其他平台集成,比如Struts,Hibernate,MyBatis。


你可能感兴趣的:(Spring,Spring技术内幕)