Spring源码阅读之准备篇-Spring整体架构分析

前言

Spring是2003年兴起的一个轻量级的Java开源框架,是为了解决企业应用开发的复杂性而创建的,它使用基本的javaBean来完成以前只可能由EJB完成的事情。但是,Spring的用途不仅仅限于服务器端的开发,从简单性、可测试性和松耦合的角度而言,任何的java应用都可以从Spring中受益。

Spring的整体架构

Spring框架是一个分层的架构,它包含一系列的功能要素,并被分为大约20个模块,其系统架构图如下图所示:
《Spring源码阅读之准备篇-Spring整体架构分析》

具体模块解释:

  • Core Container

Core Contaioner(核心容器)包含有Core、Beans、Context和Expression Language模块。 Core和Beans模块是框架的基础部分,提供IoC和依赖注入特性。在这里的基础概念是BeanFactory,它提供对Factory的经典实现来消除对程序性单例模式的需要,并真正的允许从程序逻辑中分理处依赖关系和配置;

    • Core模块主要包含Spring框架基本的核心工具类,Spring的其他的组件都要使用到这个包里的类,Core模块是其他组件的基本核心;
    • Beans模块是所有应用都会用到的,它包含访问配置文件、创建和管理bean以及依赖注入操作相关的所有类;
    • Context模块构建于Core和Beans模块基础之上,提供了一种类似于JNDI注册器的框架式的对象访问方法。Context模块继承了Beans的特性,为Spring核心提供了大量的扩展。ApplicationContext接口是Context模块的关键;
    • Expression Language模块提供了强大的表达式语言用于在运行时查询和操纵对象。
  • Data Access/Integration

Data Access/Integration层包含JDBC、ORM、OXM、JMS和Transaction模块。

    • JDBC模块:提供一个JDBC抽象层,可以消除冗长的JDBC编码和数据解析。这个模块包含了Spring对JDBC数据访问进行封装的所有类;
    • ORM模块:为对象-关系映射API(比如Hibernate、iBatis等)提供交互层;
    • OXM模块:提供一个对Object/XML映射实现的抽象层;
    • JMS模块:主要包含一些制造和消费消息的特性;
    • Transaction模块:支持编程和声明性的事物管理。
  • Web

Web上下文模块建立在应用程序上下文模块之上,为基于Web的应用程序提供了上下文。Web模块简化了处理多部分请求以及将请求参数绑定到域对象的工作。Web层包含了Web,Web-Servlet,Web-Struts和Web-Porlet模块。

    • Web模块:提供了基础的面向Web的集成特性,比如初始化IoC容器以及一个面向Web的应用上下文;
    • Web-Servlet模块:包含了Spring MVC的实现;
    • Web-Struts模块:提供了对Struts的支持;
    • Web-Porlet模块:提供了用于Porlet环境和Web-Servlet模块的MVC的实现。
  • AOP

AOP模块提供了一个符合AOP标准的面向切面编程的实现。包含Aspects和Instrumentation两个模块。

    • Aspects模块:提供了对AspectJ的集成支持;
    • Instrumentation模块:提供了class Instrumentation支持和classloader实现,使得可以在特定的应用服务器上使用。
  • Test

Test模块支持使用JUnit和TestNG对Spring组件进行测试。

    原文作者:Spring Boot
    原文地址: https://blog.csdn.net/u010185262/article/details/52982055
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞