Spring 整体架构

概览

Spring 是一个分层架构、由一系列的模块组成

spring framework

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 组件进行测试。

这次一定?

阅读 84

推荐阅读