概览
Spring 是一个分层架构、由一系列的模块组成
Core Container
核心容器,包含了 Core、Beans、Context、Expression Language 模块。
Core 和 Beans 模块是框架的基础部分、提供 IOC (控制反转)和依赖注入特性,这里的基础概念是 BeanFactory。
- Core: 主要包含 Spring 框架基本的核心工具类,Spring 的其他组件都要用到这个包里的类,Core 模块是其他组件的基本核心。
- Beans: 包含访问配置文件、创建和管理 Bean 以及进行 IOC 操作相关的所有类。
- Context: 构建在 Core 和 Beans 模块基础上,提供了类似 JNDI 注册期的框架式的对象访问方法。Context 继承了 Beans 的特性,为 Spring 和行提供了大量扩展,添加了国际化,事件传播,资源加载和 Context 的透明创建的支持。ApplicationContext 接口是 Context 模块的关键。
- Expression Language: 提供了强大的表达式语言,用于在运行时查询和操纵对象。
Data Access / Integration
包含 JDBC、ORM、JMS、OXM 和 Transaction 模块。
- Jdbc: 该模块提供了一个 JDBC 抽象层,它可以消除冗长的 JDBC 编码和解析数据库厂商特有的错误码。这个模块包含了 Spring 对 JDBC 数据访问进行封装的所有类。
- ORM: ORM 模块为流行的对象-关系映射 API ,如 JPA、Hibernate、Mybatis等,提供了一个交互层。利用 ORM 封装包,可以混合使用所有 Spring 提供的特性进行 O/R 映射。
- Oxm: 提供了一个对 Object / XML 映射实现对抽象层。
- Jms: 包含一些制造和消费消息的特性。
- Transaction: 支持编程性和声明性的事务管理,这些事务类必须实现特定的接口。
Web
web 上下文模块建立在应用程序上下文模块之上,为基于 Web 的应用程序提供了上下文。Web 层包含了 Web 模块、Web-servlet、Web-portlet。
- Web: 提供了基础的面向 Web 的集成特性,如文件上传,使用 servlet listeners 初始化 IOC 容器以及一个面向 Web 的应用上下文。
- Web-servlet: 包含了 Spring 的 MVC实现.
- Web-portlet: 提供了 portlet 环境和 web-servlet 模块的 MVC 实现。
AOP
提供了一个符合 AOP 联盟标准的面相切面编程的实现。直接将面向切面的编程功能集成到 Spring 的框架中。
- Aspects: 提供了对 AspectJ 的集成支持。
- Instrumentation: 提供了 class instrumentation 和 classloader 的实现。
Test
支持 JUnit 和 TestNG 对 Spring 组件进行测试。