Spring源码深度解析(一)

  Spring整体架构分为以下几部分:

    1.Core模块:包含Spring框架的基本核心工具类,Spring其它组件都要使用到这个包中的类,Core模块是其它组件的基本核心。

    2.Beans模块,包含访问配置文件,创建和管理bean以及进行IoC/DI(控制反转/依赖注入,上一篇文章中详细分析了这两个概念)操作相关的所有类。

    3.Context模块构建于Core和Beans模块基础之上,提供了类似于JNDI注册器的框架式的对象访问方法。Context模块继承了Beans的特性,为Spring核心提供大量扩展,添加了对国际化(例如资源绑定),事件传播,资源加载和对Context的透明创建的支持

    4.Expression language模块提供了一个强大的表达式语言用于在运行时查询和操纵对象。该语言支持设置/获取属性的值,属性的分配,方法的调用,访问数组上下文,容器和索引器,逻辑和算术运算符,命名变量以及从Spring的IoC容器中根据名称检索对象,它也支持list投影,选择和一般的list聚合。

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

    Web层包含Web,Web-Servlet,Web-Struts和Web-Porlet模块。(这两层之后进行学习讲解)

    AOP模块提供了一个符合AOP联盟变准的面向切面编程的实现,它让你可以定义例如方法拦截器和切点,从而将逻辑代码分开,降低他们之间的耦合性。利用source-level的元数据功能,还可以将各种行为信息合并到你的代码中。

    spring源码导入eclipse这里笔者就不做过多赘述了,但是要注意两点,第一点是导入之后源码之间的依赖关系,另一电视jdk的版本,不能够过低,在使用git

下载源码时候,对jdk的版本要求最低是1.8,这点极为重要。

    接下来,带着大家进行源码的初步了解,首先仍然是源码包功能概述。我们先看看beans包中的各个源码包功能:

    src/main/java    用于展现spring的主要逻辑

    src/main/resources   用于存放系统的配置文件

    src/test/java      用于对主要的逻辑进行单元测试

    src/test/resources  用于存放测试用的配置文件

介绍完目录结构,接下来就是spring之后总最核心的两个类:

    1.DefaultListableBeanFactory  类    XmlBeanFactory继承自DefaultListableBeanFactory,而DefaultListableBeanFactory是整个bean加载的核心部分,是spring注册及加载bean的默认实现,而对于XmlBeanFactory使用自定义的Xml文件实现了个性化读取。

    2.XmlBeanDefinitionReader    类    Xml配置文件的读取是spring中重要的功能,因为Spring的大部分功能都是以配置作为切入点的。

 

posted @ 2017-09-27 14:38  c++c鸟  阅读(304)  评论(0编辑  收藏  举报