您的位置:首页 > 编程语言 > Java开发

浅谈Spring设计理念和整体架构

2017-11-30 18:01 309 查看

第一章 Spring设计理念和整体架构

Spring Framework(core) 包含了其他Spring的基本模板比如MVC,JDBC,事务处理器模块的实现,这也是Spring项目的核心,包含了一系列IOC容器的设计,提供了依赖反转模式的实现。

Spring Web Flow:定义了一种特定的语言描述工作流,同时高级的工作流控制器引擎可以管理会话状态,支持了AJAX来构建丰富的客户端体验,并且提供了对JSF的支持。

 

Spring Security:是广泛使用的基础Spring的认证和安全工具。其目标是为Spring框架应用提供一个安全服务。比如用户认证,授权等。

Spring设计目标:

Spring 为开发者提供的是一个一站式的轻量级应用开发框架和传统的J2EE开发相比,Spring支持POJO(普通的Java对象,不具有业务逻辑或者实体功能,作用是方便程序员使用数据库中的数据表)和使用JavaBean开发方式,使应用面向接口开发(体现其封装特性)充分支持OO(面向对象的设计方法)。

 

在应用开发中,往往会涉及复杂的对象耦合关系,通过Spring的IOC容器,可以对这些耦合关系实现一个文本化,外部化的工作(通过上下文文件实现其依赖反转,实际上是通过BeanDefinition这种数据结构对bean进行管理。)把依赖关系的管理从Java对象中解放出来,交给IOC容器来完成,从而完成了对象关系的解耦。原来的对象——对象关系,转化为对象——IOC容器——对象的关系

 

Spring关心的是一些企业应用资源的使用,比如数据的持久化,数据集成,事务处理,消息中间件。

Spring体系的核心:IOC容器AOP模块。一方面,通过IOC容器来管理POJO对象,以及它们相互之间的耦合关系。另一方面,可以通过AOP,以动态非侵入的方式来增强服务的功能。

Spring的设计理念:面向接口开发而不是依赖于具体的产品实现,用户可以选择Hibernate作为ORM工具,也可以选择iBatis(ORM:对象映射关系,用来把对象模型表示的对象映射到基于SQL的关系模型数据库结构中去)。

Spring整体架构:

 

 

 

 

 

 

 

 

 

Spring IOC:包含了最为基本的IOC容器BeanFactory的接口与实现。BeanFactory是一个接口(IOC容器),它有许多的实现类(简单工厂模式

 XmlBeanFactory:支持通过Xml文件配置bean的定义信息

SimpleJndiBeanFactory

StaticListableBeanFactory

 

除了像BeanFactory那样最基本的容器形态之外,Spring还设计了IOC容器的高级形态像ApplicationContext应用上下文供用户使用。当然使用ApplicationContext,本质上也是实现BeanFactory的接口方法,只不过ApplicationContext是更为高级的封装。

Spring AOP:Spring集成AspectJ作为AOP的一个特定实现。AOP框架作为Spring 集成其他模块的工具。比如对事务的处理,Spring AOP实现了一个完整的建立AOP代理对象,实现AOP拦截器,直至实现各种Advice通知的过程。

Spring MVC:这个模块是以DispatcherServlet为核心,实现了MVC模式,包括怎样与Web容器环境的集成,Web请求的拦截,分发,处理以及ModelAndView数据的返回。

Spring JDBC/Spring ORM:Spring对JDBC做了一层封装,使通过JDBC完成对数据库的操作变得更加简洁。Spring JDBC提供了JDBCTemplate作为模板类,封装了基本的数据库的操作方法。Spring还提供了许多对ORM工具的封装,这些封装包括了常用的ORM工具,如Hiberate,IBatis等。

Spring事务处理:Spring事务处理是一个通过Spring AOP实现自身功能增强的典型模块,Spring把在企业应用开发中事务处理的主要过程抽象出来,并且简洁地把通过AOP的切面增强实现了声明式事务处理的功能。

在Spring中,JavaEE的服务都被抽象到IOC容器中,并通过AOP进行有效的封装。因为依赖注入的特性,这些复杂的依赖关系的管理被反转并被交给容器,使复杂的依赖关系从应用中解救出来。

对应用开发而言,只需要了解服务的接口和依赖关系的配置即可。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: