浅谈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进行有效的封装。因为依赖注入的特性,这些复杂的依赖关系的管理被反转并被交给容器,使复杂的依赖关系从应用中解救出来。
对应用开发而言,只需要了解服务的接口和依赖关系的配置即可。
相关文章推荐
- Spring 框架学习(一):设计理念、整体架构
- 第一章 spring设计理念和整体架构
- Spring(1): Spring设计理念和整体架构
- 《Spring技术内幕》笔记-Spring的设计理念和整体架构
- Spring技术内幕——Spring的设计理念和整体架构
- spring 技术内幕读后感2---设计理念与整体架构
- Spring整体架构和设计理念笔记
- Spring技术内幕1 Spring的设计理念和整理架构
- 《Spring技术内幕》笔记-Spring的设计理念和总体架构
- Spring架构及设计理念
- Spring整体架构
- Spring 框架的设计理念与设计模式分析
- 整体架构设计
- Spring 框架的设计理念与设计模式分析
- Android App整体架构设计的思考
- 《K8s与云原生应用》之K8s的系统架构与设计理念
- spring架构和设计
- 分针网—IT教育: 浅谈 jQuery 核心架构设计
- 浅谈12306核心模型设计思路和架构设计
- 领域驱动设计:理念,架构和若干重要细节(draft)