1.Spring 框架由6个模块组成
- 上图是spring4的结构图,不同版本结构略有差异,但模块都是相同的。
2.Core Container 核心容器
- 容器是Spring的核心部分,Core Container 模块是Spring框架的基础,所有模块都构建于核心模块之上。
- Beans : Beans模块是所有应用都要用到的,它包含访问配置文件、创建和管理bean以及进行Inversion of Control / Depen-dency Injection(IoC/DI)操作相关的所有类。
- Core : Core模块主要包含Spring框架基本的核心工具类,Spring的其他组件要都要使用到这个包里的类,Core模块是其他组件的基本核心。当然你也可以在自己的应用系统中使用这些工具类。
- Context : Spring的上下文即IoC容器,通过上下文可以获得容器中的Bean。 ApplicationContext接口是Context模块的关键。 Context模块构建于Core和Beans模块基础之上,提供了一种类似于JNDI注册器的框架式的对象访问方法。
- SpEl : Expression Language模块提供了一个强大的表达式语言用于在运行时查询和操纵对象。
3.Core Container 依赖关系
- 核心模块中的部分并不是独立的,他们之间相互依赖着
- 因为spring-core依赖了commons-logging,而其他模块都依赖了spring-core,所以整个spring框架都依赖了commons-logging。
- 如依赖关系Spring离不开日志,但是日志框架有多种也不一定使用commons-logging如果有自己的日志实现如log4j,可以排除对commons-logging的依赖,没有日志实现而排除了commons-logging依赖,编译报错。关于Spring日志框架请看这篇博文
4. 构建最基础的Spring项目
- 核心容器四个包
- spring-beans-4.1.3.RELEASE.jar
- spring-context-4.1.3.RELEASE.jar
- spring-core-4.1.3.RELEASE.jar
- spring-expression-4.1.3.RELEASE.jar
- 核心容器依赖的日志包
- commons-logging-1.2.jar
- log4j-1.2.17.jar
- commons-logging相当于一个日志接口,log4j相当于该接口的实现,如果不添加log4j包也可以,因为commons-logging也有一个简单的实现会自动使用。
- 测试类包
- spring-test-4.1.3.RELEASE.jar
- junit-4.10.jar(高于4.10版本还需要hamcrest-core.jar + hamcrest-library.jar)
- 测试类用到了AOP必须导入aop包
- spring-aop-4.1.3.RELEASE.jar
这样一个Spring项目所需要的最基础的环境就搭建完成了。