本章内容:
Spring各个子项目、Spring设计目标、Spring整体架构、Spring应用场景。
1.1 Spring各个子项目
Spring Framework(Core):包含一系列IoC容器的设计,提供依赖反转模式的实现;继承了AOP;包含其他基本模块,例如MVC、JDBC、事务处理模块的实现。
Spring Web Flow:工作流引擎。Spring BlazeDs Integration:Spring提供的与Flex通讯模块。Spring Security:Spring认证和安全框架。
Spring Security OAuth:OAuth在Spring的实现上提供支持。Spring Dynamic Modules:Spring对OSGi平台的支持。
Spring Batch:提供构建批处理应用和自动化操作的框架。Spring AMQP:Spring更好的使用基于AMQP(高级消息队列协议)的消息服务而开发。
Spring .NET:.NET环境中的Spring。Spring Android:在Andriod环境中基于Java REST客户端。
Spring Data:为Spring使用非关系型数据库提供帮助,比如使用分布式,k-v数据库等。
Spring Integration、Spring Mobile、Spring Social等模块。
1.2 Spring设计目标
Spring的设计目标是:Spring为开发者提供一个一站式轻量级应用开发平台。
Spring设计理念是:在JavaEE开发中,支持POJO和JavaBean开发方式,使应用面向接口开发,充分支持OO设计方法;在Spring通过IoC容器实现对象耦合关系的管理,并实现依赖反转,将对象之间的依赖关系交给IoC容器,实现解耦;
Spring体系核心:IoC容器和AOP模块。通过IoC容器管理POJO对象以及他们之间的相互耦合关系;通过AOP以动态非侵入的方式增强服务。
1.3Spring整体架构
将Spring划分为:Spring IoC、Spring AOP、Spring MVC、Spring JDBC/ORM、Spring 事务处理、Spring 远端调用、Spring应用。
Spring IoC:包含最基本的IoC容器BeanFactory接口的设计与实现。例如:XmlBeanFactory是BeanFactory的实现。还有IoC容器的高级形式ApplicationContext,例如:FileSystemXMLApplicationContext、ClassPathXMLApplicationContext等实现。
Spring AOP:在JDK动态代理和CGLIB基础上实现了AOP,Spring还集成了AspectJ最为AOP的一个特定实现。
Spring MVC:该模块是以DispatcherSerlet为核心,实现MVC模式。
Spring JDBC/ROM:Spring对JDBC进行封装,提供了JdbcTemplate作为模板类,封装了基本的数据库操作方法(查询、更新);Spring JDBC还提供了RDBMS的操作对象,使得这些操作可以以面向对象的方法来使用JDBC。
Spring 事务处理:该模块是通过Spring AOP实现的自身功能增强,实现了声明式事务处理功能。
Spring 远端调用:通过Spring,封装从Spring应用到Spring应用之间端到端调用。
Spring应用:严格意义上不属于Spring范围。该部分来自于Spring的广泛的子项目。
1.4 Spring应用场景
应用场景:SSH、SSM
Spring价值:Spring是非侵入式的框架,目标是使应用程序代码对框架依赖最小化;Spring提供一个一致的编程模型,使应用直接使用POJO开发,与运行环境隔离开来;Spring推动应用设计风格向面向对象和面向接口开发转变,提高了代码的重用性和可测试。