1 Spring简介
1.1 Spring概述
1.1.1 Spring是什么
说明:Spring是分层的JavaSE/EE应用full-stack轻量级开源框架,以IOC(Inverse of Control)
和AOP(Aspect OrientedProgramming)
为内核;其提供了展现层SpringMVC和持久层SpringJDBCTemplate以及业务层事务管理等众多的企业级应用技术,还能整合开源世界众多著名的第三方框架和类库,逐渐成为使用最多的JavaEE企业应用开源框架。
1.1.2 Spring的优势
优点:
- 方便解耦,简化开发:通过Spring提供的IoC容器,可以将对象间的依赖关系交由Spring进行控制,避免硬编码所造成的过度耦合。用户不必再为单例模式类、属性文件解析等这些底层的需求编写代码,可以更专注于上层的应用。
- AOC的编程支持:通过Spring的Aop功能,方便进行面向切片编程,许多不容易用传统OPP实现的功能可以通过AOP轻松实现。
- 声明式事务的支持:可以将我们从单调烦闷的事务管理代码中解脱出来,通过声明式方式灵活的进行事务管理,提高开发效率和质量。
- 方便程序的测试:可以用非容器依赖的编程方式进行几乎所有的测试工作,测试不再是昂贵的操作,而是随手可做的事。
- 方便集成各种优秀的框架:Spring对各种优秀框架的支持。
- 降低JavaEEAPI的使用难度:Spring对JavaEEAPI进行薄薄的封装层,使这些API的使用难度大大降低。
- Java源码是经典学习范例:Spring的源代码设计精巧、结构清晰、匠心独用,处处体现着大师对Java设计模式灵活运用以及对Java技术的高深造诣。
1.2 Spring系统架构
1.2.1 SpringFrameWork特性
说明:SpringFramework是Spring基础框架,可以视为Spring基础设施,基本上任何其他Spring项目都是以SpringFramework为基础的。
特性:
- 非侵入式:使用Spring Framework开发应用程序时,Spring对应用程序本身的结构影响非常小。对领域模型可以做到零污染;对功能性组件也只需要使用几个简单的注解进行标记,完全不会破坏原有结构,反而能将组件结构进一步简化,这使得SpringFramework开发应用程序时结构清晰,简洁优雅。
- 控制反转IOC:IOC全名为Inversion of Control,反转资源获取方向。把自己创建资源、向环境索要资源变成环境将资源准备好,我们享受资源注入
- 面向切片编程AOP:AOP全名为Aspect Oriented Programming,在不修改源代码的基础上增强代码功能。
- 容器:Spring IOC是一个容器,因为它包含并且管理组件对象的声明周期,组件享受到了容器化的管理,替 程序员屏蔽了组件创建过程中的大量细节,极大地降低了使用门槛,大幅度提高了开发效率
- 组件化:Spring实现了简单的组件配置组合成一个复杂的应用。
- 声明式:很多以前需要编写代码才能实现的功能,现在只需要声明需求即可由框架代为实现。
- 一站式:在IOC和AOP的基础上可以整合各种企业应用的开源框架和优秀的第三方类库。而且Spring旗下的项目已经覆改了广泛领域,很多方面的功能性需求可以在Spring Framework的基础上全部使用Spring来实现。
1.2.2 SpringFramework五大功能模块
功能模块 | 功能介绍 |
---|---|
Core Container | 核心容器,在Spring环境下使用任何功能都必须基于IOC容器 |
AOP&Aspects | 面向切面编程 |
Testing | 提供了junit或TestNG测试框架的整合 |
Data Access/Integration | 提供了对数据访问/集成的功能 |
Spring MVC | 提供了面向web应用程序的集成功能 |