Spring源码-整体架构


Spring源码-整体架构_第1张图片

Spring是一个分层框架,它包含大约20个模块。如图所示:

Spring源码-整体架构_第2张图片

(图片来自百度图片)

Spring各模块简介

下面简单介绍下Spring Framework的各个层次和模块。

Data Access/Integration

Data Access/Integration层含有JDBC、JDBC、JDBC、JMS、Transactions模块。

JDBC

JDBC(Java DataBase Connectivity)模块提供了一个JDBC抽象层。这个模块包含了Spring对JDBC数据访问进行封装的所有类。

ORM

ORM(Object Relational Mapping)模块为流行的对象关系映射(Object Relational Mapping)框架,如Hibernate,iBatis,MyBatis等等提供了交互层。

OXM

OXM(Object/XML Mapper)模块提供了一个Object/XML Mapper实现的抽象层。Object/XML Mapper实现包括XML Beans、XStream等等。

JMS

JMS(Java Messaging Service)模块包含了生产和消费消息的功能区。

Transactions

Transactions模块支持事务管理。

Web

Web层包含了Websocket、Servlet、Web、Porlet模块。

Websocket

待补充

Servlet

该模块提供了MVC实现

Web

该模块提供了基础的面向web的集成特性,如多文件上传,servlet listener。

Portlet

Portlet模块提供用于Portlet环境和Servlet模块的MVC的实现。

AOP

AOP(Aspect-Oriented Programming,面向切面编程),它将那些影响了多个类的公共行为封装到一个可重用模块,该模块即为切面。

Spring AOP模块将面向切面编程功能集成到Spring框架中。

Aspects

Aspects模块为Spring框架提供了对AspectJ的支持。AspectJ是一个流行的AOP框架。

Instrumentation

Instrumentation模块提供了一定的应用服务器中使用类工具的支持和类加载器实现。

Messaging

Messaging是spring4新增加的模块,包含了一部分主要的基于message的应用的实现。

Core Container

核心容器Core Container层包含Beans、Core、Context、SpEL模块。其中Beans、Core模块是Spirng框架的基础部分,提供了控制反转(Inversion of Control,IoC)和依赖注入(Dependency Injection,DI)特性。

Beans

Beans模块是所有应用都要使用的,它包含访问配置文件、创建和管理Bean,以及IoC和DI相关的类。

Core

Core模块包括框架的核心工具类。其他模块都要依赖这个模块的功能。

Context

Context模块以Beans模块和Core模块为基础,提供一种类似于JNDI且以框架的方式来操作对象的方式。Context在Beans的基础上提供了国际化、事件传播、资源加载等功能。ApplicationContext接口是Context模块的关键。

SpEL

Spring Expression Language是一种很强大的expression language,支持在运行时查询和操作对象的属性。

Test

该模块使用JUnit和TestNG对Spirng组件进行测试。

Spring架构

Spring源码-整体架构_第3张图片

以上几个模块可以说是Spring源码中最重要的几个模块,在后面的文章中会依次介绍。

你可能感兴趣的:(Spring源码,Spring源码札记)