Spring —— 源码学习【整体架构】

Spring —— 源码学习【整体架构】

整体架构图如下:
在这里插入图片描述

组成部分

Core Container(核心容器)

Core、Beans是框架基础部分,提供Ioc(控制反转)和依赖注入特性。

  • Core
    涵盖框架核心工具类,Spring 其他组件都会使用这里的类。

  • Beans
    所有应用都会使用,包含访问配置文件、创建和管理bean以及进行Inversion of Control / Dependency injection(IOC/DI) 控制反转、依赖注入操作相关的所有类。

  • Context
    构建在Core和Bean之上,Context继承Bean特性,为Spring 框架提供大量扩展功能,例如:国际化、事件传播、资源加载和Context的透明创建支持。
    ApplicationContext接口是Context模块的关键。

  • Expression Language
    提供表达式语言,用于运行时查询和操纵对象。该语言支持设置/获取属性值,属性的分配,方法的调用,访问数组上下文(accessiong the context of arrays)、容器和索引器、逻辑和算术运算符、命名变量以及从Spring的IoC容器中根据名称检索对象。

Data Access/Integration

  • JDBC
    Spring对JDBC数据访问进行封装的所有类。

  • ORM
    为流行对象关系映射API如JPA、JDO、Hibernate、iBatis等提供一个交互层。利用ORM封装包,可以混合使用所有Spring提供的特性进行O/R映射。

  • OXM
    提供了一个对Object/XML映射实现的抽象层,Object/XML映射实现包括JAXB、Castor、XMLBeans、JiBX和XStream。

  • JMS(Java Messaging Service)
    包含一些制造和消费消息的特性。

  • Transaction
    支持编程和声明性事务管理,这些事务必须实现特定的接口,并且对所有的POJO都适用。

Web

Web上下文模块,建立在应用程序上下文模块之上,为基于Web的应用程序提供了上下文。Web层包含了Web、Web-Servlet、Web-Struts和Web-Porlet模块。

  • Web
    提供基础面向Web的集成特性。

  • Web-Servlet

  • Web-Struts

  • Web-Porlet

Aop

AOP提供一个符合AOP联盟标准面向切面编程的实现,它让你可以定义例如方法拦截器和切点,从而将逻辑代码分开,降低它们之间的耦合性。利用source-level的元数据功能,可以将各种行为信息合并到代码中。
通过配置管理特性,Spring AOP模块直接将面向切面的编程功能集成到了Spring框架中,达到使Spring框架管理的任何对象支持AOP,Spring AOP模块为基于Spring的应用程序中的对象提供了事务管理服务。通过使用Spring AOP,不用依赖EJB组件,就可以将声明性事务管理集成到应用程序中。

  • Aspects
    提供对AspectJ集成支持。

  • Instrumentation
    提供了instrumentation支持和ClassLoader实现,使得可以在特定的应用服务器上使用。

Test

支持使用Junit和TestNG对Spring组件进行测试。

猜你喜欢

转载自blog.csdn.net/Cy_LightBule/article/details/87271298
今日推荐