Spring源码深度解析_源码构建
精选
原创
©著作权归作者所有:来自51CTO博客作者苋苋公子的原创作品,请联系作者获取转载授权,否则将追究法律责任
源码构建
1.下载
spring-jcl
:spring 封装的日志框架。spring-core
:spring 核心依赖,包含 Spring 框架基本的核心工具类, Spring 的其他纽件都要用到这个包里的类, Core 模块是其他纽件的基本核心,引入该依赖会同时引入spring-core、spring-jclspring-beans
:所有应用都要用到的,包含访问配直文件、创建和管理 bean 以及进行 IOC/DI 操作相关的所有类spring-context
:Context 模块构建于 Core Beans 模块基础之上,提供了一种类似于 JNDI 注册器的框架式的对象访问方法。Context 模块继承了 Beans 的特性,为 Spring 核心提供了大量扩展,添加了对国际化 (例如资源绑定)、事件传播、资源加载、定时任务和对 Context 透明创建的支持。Context 模块同时也支持 J2EE 的一些特性, 例如 EJB 、JMX 和基础的远程处理。ApplicationContext 接口是 Context 模块的关键。spring-jdbc
:spring 对 jdbc 的封装,并提供了编程式事务控制,引入该依赖会同时引入spring-jdbc、spring-txspring-tx
:spring 提供的声明式事务控制,包含 @Transaction 声明式事务注解spring-web
:spring 的 web 框架,引入该依赖会同时引入spring-beans、spring-core、spring-jcl、spring-webspring-webmvc
:springmvc 框架,是 web 的一个实现,引入该依赖会同时引入spring-aop、spring-beans、spring-context、spring-core、spring-expression、spring-jcl、spring-web、spring-webmvc,做一般的 web 开发可以直接引入该依赖即可,不必引入其他 spring 依赖。
2.构建
- Spring5 以后采用 Gradle 来编译,因此构建源码前先安装 Gradle 环境。这里使用 IDEA2020.1.3 版本打开工程后,IDEA 会自动下载对应 Gradle4.3.1 版本的zip包,并自行开始构建,Gradle 版本可以在源码根目录下的 build.gradle 文件找到 gradleVersion = 4.3.1 配置。通常会出现两个问题:
- integration-0.9.15.pom 找不到:在 build.gradle 文件中,将 id "org.jetbrains.dokka" version "0.9.15" 其版本 0.9.15 修改为 0.9.17 即可。
- 多种依赖找不到:找到 build.gradle 文件中的 repositories,在第一行添加如下:
repositories {
maven { url "http://maven.aliyun.com/nexus/content/groups/public"} //添加阿里云环境
maven { url "https://repo.spring.io/libs-release" }
maven { url "https://repo.spring.io/milestone" } // for AspectJ 1.9 beta
}