spring源码构建以及模块划分和依赖

目录

Spring源码构建

环境环境

安装Gradle

编译源码

spring中的依赖关系

spring中的版本号规则

语义化版本命名通行规则

Spring版本命名规则


Spring源码构建

环境环境

JDK1.8
IDEA
Gradle

Spring源码Github下载地址:
https://github.com/spring-projects/spring-framework/archive/v5.0.2.RELEASE.zip

由于Spirng5以后都是采用Gradle来编译,所以构建源码前需要先安装Gradle环境
Gradle:使用的是源码的build.gradle里的版本 4.3.1,下载链接:https://gradle.org/next-steps/?version=4.3.1&format=all
spring源码构建以及模块划分和依赖_第1张图片

 

安装Gradle

下载后解压并配置环境变量即可

spring源码构建以及模块划分和依赖_第2张图片

spring源码构建以及模块划分和依赖_第3张图片

spring源码构建以及模块划分和依赖_第4张图片

编译源码

1.切到 spring-framework-5.0.2.RELEASE 目录,运行gradlew.bat

spring源码构建以及模块划分和依赖_第5张图片

看到下图就表示编译成功了

spring源码构建以及模块划分和依赖_第6张图片

2.导入到IDEA

spring源码构建以及模块划分和依赖_第7张图片spring源码构建以及模块划分和依赖_第8张图片

spring源码构建以及模块划分和依赖_第9张图片spring源码构建以及模块划分和依赖_第10张图片

构建成功后就可以查看类图了

spring源码构建以及模块划分和依赖_第11张图片

 

 

spring中的依赖关系

spring的结构图如下:

spring源码构建以及模块划分和依赖_第12张图片

分为五个大模块:

核心容器
spring core,beans:
包含DI和IOC,BeanFactory 容器实例化后并不会自动实例化Bean,只有当Bean 被使用时 BeanFactory 容器才会对该 Bean 进行实例化与依赖关系的装配。
spring-context: 扩展了BeanFactory,添加了Bean生命周期控制等,ApplicationContext是该模块的核心接口,她的超类是BeanFactory。与BeanFactory 不同的是ApplicationContext容器实例化后会自动对所有的单实例Bean进行实例化与依赖关系的装配
spring-context-support: 对Spring IOC 容器的扩展支持。
spring-context-indexer: Spring的类管理组件和Classpath扫描
spring-expression: 统一表达式语言(EL)的扩展模块

AOP和设备支持
spring-aop: 
Spring 的另一个核心模块,是AOP 主要的实现模块
spring-aspects: 集成自AspectJ框架,主要是为Spring AOP提供多种AOP 实现方法。
spring-instrument: 基于JAVA SE中的"java.lang.instrument"设计的,应该算是AOP的一个支援模块

数据访问与集成
spring-jdbc:
Spring 提供的JDBC抽象框架的主要实现模块,用于简化SpringJDBC操作
spring-tx: Spring JDBC事务控制实现模块
spring-orm: ORM 框架支持模块, 集成 Hibernate, Java Persistence API (JPA)等
spring-oxm: 提供一个抽象层以支撑OXM(Object-to-XML-Mapping)
spring-jms:(JavaMessagingService)能够发送和接收信息

Web组件
spring-web:
为Spring提供最基础的Web支持,建立于核心容器之上,通过Servlet或者Listeners 来初始化IOC 容器。
spring-webmvc: Web-Servlet模块,实现了Spring MVC的Web应用。
spring-websocket: 主要是与Web客户端的全双工通讯的协议。
spring-webflux: 新的非堵塞函数式 Reactive Web 框架,可以用来建立异步的,非阻塞,事件驱动的服务。

通信报文
spring-messaging: 
为Spring 框架集成一些基础的报文传送应用。

集成测试
spring-test:
为测试提供支持

依赖图:

spring源码构建以及模块划分和依赖_第13张图片

根据maven里的Jar包的依赖关系整理的:比方说spring-context就dependency于这些Jar

spring源码构建以及模块划分和依赖_第14张图片

spring中的版本号规则

语义化版本命名通行规则

对版本的迭代顺序命名做了规范,其版本号的格式为 X.Y.Z(又称 Major.Minor.Patch),递增的规则为:

序号 格式要求 说明
X 非负整数 表示主版本号(Major),当 API 的兼容性变化时,X 需递增。
Y 非负整数 表示次版本号(Minor),当增加功能时(不影响 API 的兼容性),Y 需递增
Z 非负整数  表示修订号(Patch),当做 Bug 修复时(不影响 API 的兼容性),Z 需递增。


 

 

 

 

Spring版本命名规则

描述方式 说明 含义
Snapshot 快照版 尚不稳定、处于开发中的版本
Release 稳定版 功能相对稳定,可以对外发行,但有时间限制
GA 正式版 代表广泛可用的稳定版(General Availability)
M 里程碑版 (M 是 Milestone 的意思)具有一些全新的功能或是具有里程碑意义的版本。
RC 终测版 Release Candidate(最终测试),即将作为正式版发布。







 

你可能感兴趣的:(spring)