Spring源码 - 模块介绍

       好久没有更新博客了,可能是因为工作后没有在学校那么闲了。之后我坚持督促自己每周一更吧。现在直接步入主题,上一章节是对Spring的依赖jar包做了介绍。从今天开始对Spring源码开始研究,希望大家一起进步吧。

       我现在是研究的Spring版本是5.0.x,当把Spring-framework源码导入进项目后可以看到有很多个子模块。下面我就介绍一下这些子模块及它们在Spring整个项目中起到的作用。

Spring源码 - 模块介绍

正如上一个章节介绍的模块内容,这一个章节是做一下细化的讲解。

  1.  spring-jcl这个模块是spring源码里面最基础的模块,没有去依赖其他模块,它是为了兼容不同版本的日志系统。利用异常去做业务控制,采用适配器模式和工厂模式。
  2. spring-core模块主要是包含Spring框架基本的核心工具类,Spring的其他组件都要使用到这个包里的类,Core模块是其他组件的基本核心。
  3. spring-beans模块是所有应用都要用到的,它包含访问配置文件、创建和管理Bean以进行IOC和DI相关操作的所有类。
  4.  spring-context构建与core和beans模块基础之上,提供了一种类似于JNDI注册器的框架式的对象访问方法。Context继承了Beans的特性,为Spring提供了大量的扩展,添加了国际化、事件传播、资源加载和对Context的透明创建的支持。ApplicationContext接口是Context模块的关键。
  5. spring-expression模块提供了一个强大的表达式语言用于在运行时查询和操作对象。它是JSP2.1规范中定义的一个扩展。该语言支持设置获取属性的值、属性的分配、方法的调用,访问数组上下文、容器和索引器、逻辑和算术运算符、命名变量以及从Spring的IOC容器中根据名称检索对象。它也支持list投影、选择和一般的list聚合。
  6.  spring-jdbc模块提供了一个JDBC抽象层,它可以消除冗长的JDBC编码和解析数据厂商特有的错误代码。这个模块包含了spring对JDBC数据访问进行封装的所有类。
  7.  spring-orm模块是对象-关系映射API,如JPA、JDO、Hibernate、iBates等,提供了一个交互层。利用ORM分装包,可以混合使用所有的Spring提供的特性进行O/R映射。
  8.  spring-oxm模块提供了一个对Object/XML映射实现的抽象层,Object/XML映射实现包括JAXB、Castor、XMLBean、JiBX和Xstream。
  9.  spring-jms模块主要包含了一些制造和消费消息的特征。
  10.  spring-tx模块支持编程和声明性的事务管理,这些事务类必须实现特定的接口,并且对所有的POJO都适用。
  11.  spring-aspects模块提供了对AspectJ的集成支持
  12.  spring-aop模块提供了一个符合AOP联盟标准的面向切面编程的实现,它让你可以定义例如方法拦截器和切点,从而将逻辑代码分开,降低它们的耦合性。

上面没有把所有的模块全部介绍,原因就是我没有充分理解那些模块的功能,这篇文章我会持续更新的。