[spring源码] 小白级别的源码解析(一)

 一直都在用spring,但是每次一遇到spring深入的问题,就是比较懵的状态。最近花了段时间学习了一下spring源码。

1,spring版本介绍

    虽然工作中,一直在用到spring,可能有时候,并不会特别去关注版本号。所以先简单介绍一下,spring的版本。

    当前的最新快照版本是5.0.0

    稳定版本是4.3.8

2,spring框架概述

    

      就不展开一一介绍每个模块了。 想了解的可以直接去官网了解。就介绍一下常用的,也是大家关心的几个模块。

       2.1Core Container         

            该模块包含 spring-core, spring-beans, spring-context, spring-context-support, 和 spring-expression (Spring Expression Language) .

            spring-core和 spring-beans 提供了基础的功能的支持,包括ioc 和 控制反转。

        spring-context  spring的上下文,建立在core和beans的基础之,增加了对国际化的支持,Spring上下文支持提供集成常见的第三方库在Spring应用程序上下文。

3,spring jar包介绍

    相信大家在工作中一用到spring就会引入一段jar包, 经常会搞不懂,这些jar具体都是做什么的。下面就介绍一下spring的各个jar包之间的关系。

    3.1core    

   core部分包含5个模块

  1. spring-core:依赖注入IoC与DI的最基本实现
  2. spring-beans:Bean工厂与bean的装配
  3. spring-context:spring的context上下文即IoC容器
  4. spring-context-support 
  5. spring-expression:spring表达式语言

  完整的依赖关系图。(全部引入后查看,已经存在共同依赖同一个包的关系,会存在显示不同)

 

  3.2aop

  

  aop部分包含4个模块

  1.   spring-aop:面向切面编程
  2.   spring-aspects:集成AspectJ
  3.   spring-instrument:提供一些类级的工具支持和ClassLoader级的实现,用于服务器
  4.   spring-instrument-tomcat:针对tomcat的instrument实现

 

 其他两个模块,没有依赖,不在绘画依赖关系图。

    其他模块,相对明了。 不再详细展开描述。附带一张spring官网的依赖包表格。

参考:spring官网。

原文地址:https://www.cnblogs.com/qunan/p/6867479.html