主要结构
Spring Framework由20多个模块组成,这些模块可以分为核心容器、数据访问/集成、Web、AOP(面向切面编程)、设备、消息和测试等。可以将他们划分为如下五大模块:
功能模块 | 功能介绍 |
Core Container | 核心容器,在Spring环境下使用任何功能都必须基于IOC容器 |
AOP&Aspects | 面向切面编程 |
Test | 提供了对JUnit或TestNG测试框架的整合 |
DataAccess/Integration | 提供了对数据访问/集成的功能 |
Spring MVC | 提供了面向Web项目的集成功能 |
其中的CoreContainer模块构成如下:
- Spring-core模块:提供了框架的基本组成部分,包括控制反转和依赖注入功能。
- Spring-beans模块:提供了BeanFactory,容器内部用工厂模式来管理对象,不提供给开发人员使用,在Spring中对象被称为bean。
- Spring-context模块:在Core和Bean模块的基础之上,提供了一种框架式的访问方式,是访问定义和配置的任何对象的媒介,最常用的就是ApplicationContext接口,它继承于BeanFactory。
- Spring-Expression:为程序在运行的时候提供强大的表达式语言,可以通过名字从IOC容器中检索和获取对象,支持setget属性值等等。
特性
- 非侵入式:使用Spring Framework开发项目时,其对项目本身的结构影响极小,用注解的方式对功能性组件进行标记不仅不会破坏结构,反而简化了开发。
- 控制反转(IOC):翻转资源获取方向,从自己主动new资源、向环境获取资源转变为环境将资源准备好并注入,我们直接使用。提到IOC必然会提到DI(依赖注入),DI是IOC的另一种表述方式,即组件以一些预先定义好的方式接受来自于容器的资源注入,它是IC的一种具体体现。
- 容器:SpringIOC是一个容器,因为它包含并且管理组件对象的生命周期。组件享受到了容器化的管理,提程序员屏蔽了组件创建过程中的大量细节,极大地降低了使用门槛,大幅度提高了开发效率。
- 组件化:Spring实现了使用简单的组件配置组合成一个复杂的应用,zaisoring中可以使用XML和JAVA注解组合对象。这使得我们可以基于一个个功能明确、边界清晰的组件有条不紊的搭
建超大型复杂应用系统。
-
声明式:很多以前需要编写代码才能实现的功能,现在只需要声明需求即可由框架代为实现。
-
一站式:在 IOC 和 AOP 的基础上可以整合各种企业应用的开源框架和优秀的第三方类库。而且 Spring 旗下的项目已经覆盖了广泛领域,很多方面的功能性需求可以在 Spring Framework 的基础上全部使用 Spring 来实现。
资料参考
尚硅谷