一、Spring的整体架构
Spring的架构图
- Spring IoC:包含了基本的IoC容器BeanFactory的接口与实现。
- Spring AOP:实现一个完成的建立AOP代理对象,实现AOP拦截器,直至实现各种Advice通知的过程。
- Spring MVC:以DispatcherServlet为核心,实现MVC模式,包含与Web容器环境的集成,Web请求的拦截、分发、处理和ModelAndView数据的返回,以及集成各种UI视图展现和数据表现。
- Spring JDBC/ORM:提供了jdbcTemplate作为模板类,封装了基本的数据库操作方法,提供了RDBMS的操作对象,提供了ORM工具的封装。
- Spring事务处理:Spring把在企业应用开发中事务处理的主要过程抽象出来,并且简洁地通过AOP的切面增强实现了声明式事务处理的功能。
- Spring远端调用:可实现应用的解耦。
- Spring应用:应用支持,来自广泛使用的Spring子项目。
二、Spring的设计目标
Spring为开发者提供一个一站式的轻量级应用开发框架(平台)。
在Java EE的应用开发中,支持POJO和使用JavaBean的开发方式,使应用面向接口开发,充分支持OO(面向对象)的设计方法。
三、Spring的主要子项目
- Spring Framework(Core):Spring项目的核心。包含了一系列IoC容器的设计,提供了依赖反转模式的实现;集成了AOP功能;包含Spring基本模块,比如MVC、JDBC、事务处理模块的实现。
- Spring Security:基于Spring的认证和安全工具。
- Spring Batch:提供构建批处理应用和自动化操作的框架。
- Spring Integration:为企业的数据集成提供解决方案。
- Spring AMQP:基于AMQP(高级消息队列协议)的消息服务。
- Spring Data:提供使用非关系型数据的能力。
四、Spring的应用场景
在SSH架构中,Struts作为Web UI层,Spring作为中间件平台,Hibernate作为数据持久化工具(ORM工具)来操作关系数据库。
五、Spring的特点
- Spring是一个非侵入式框架,目标使应用程序代码对框架的依赖最小化。
- Spring提供了一个一致的编程模型,使应用直接使用POJO开发,从而与运行环境隔离开来。
- Spring推动应用的设计风格面向对象及面向接口编程转变,提高了代码的重用性和可测试性。 Spring改进了体系结构的选择。