小编的环境:
spring-framework: 5.1.0.BUILD-SNAPSHOT
gradle:4.8
jdk:1.8
idea:2020.1
一 下载spring源码,并解压:
下载地址:https://github.com/spring-projects/spring-framework
选择合适的版本下载,小编这里下载的是5.1.0.BUILD-SNAPSHOT
(类似找不到合适的结婚对象,和速度没关系)
二 下载gradle,并解压
下载地址:http://downloads.gradle.org/ 小编下载的4.8版本
三 配置gradle环境变量
添加GRADLE_HOME变量 GRADLE_NAME : ${gradlePath}
添加GRADLE_HOME到Path变量 : PAHT : %GRADLE_HOME%\bin
完成后,cmd窗口输入gradle -v 验证,如果出现版本信息则代表安装成功。
四:构建源代码
- cmd进入到项目根目录,
- 运行gradlew.bat文件(输入gradlew.bat直接回车)
- 等待构建完成(这是个类似找结婚对象的过程。。。。。。)
五 打开IDEA,直接open该项目
导入spring-framework:
注意一下,如果这里下载的是spring的最新版本代码,所以你要使用jdk8的环境运行。。jdk7不会成功的。。。
.gradle文件就默认你自己用户下的.gradle文件就好了。。。。直接点击ok...
有一点需要注意::如果你的idea版本不是最新的,那么可能idea和你的gradle不会兼容,,所以这个时候你要么升级idea,要么
将gradle.wrapper.properties文件中的url修改为你自己用的版本。。。
小编建议你用最新的idea很省事,,第五大步骤这些选项都不用你来勾选,直接open 就可以自动build了
最后打开搜索ApplicationContext,ctrl+alt+shift+u 如果能查看类图,则代表spring源代码构建成功。
六 spring源代码各个模块作用
主要模块:
spring-core:核心模块 依赖注入IOC和DI的最基本实现
spring-beans:Bean工厂与装配
spring-context:上下文,即IOC容器
spring-context-support:对IOC的扩展,以及IOC子容器
spring-context-indexer:类管理组件和Classpath扫描
spring-expression:表达式语句
切面编程:
- spring-aop:面向切面编程,CGLB,JDKProxy
- spring-aspects:集成AspectJ,Aop应用框架
- spring-instrument:动态Class Loading模块
数据访问与集成:
spring-jdbc:提供JDBC主要实现模块,用于简化JDBC操作
spring-tx:spring-jdbc事务管理
spring-orm:主要集成Hibernate,jpa,jdo等
spring-oxm:将java对象映射成xml数据或将xml映射为java对象
spring-jms:发送和接受消息
web组件:
spring-web:提供了最基础的web支持,主要建立在核心容器上
spring-webmvc:实现了spring mvc的web应用
spring-websocket:主要与前端页的全双工通讯协议
spring-webflux:一个新的非阻塞函数式Reactive Web框架
报文
- spring-messaging:4.0加入的模块,主要集成基础报文传送应用
测试:
- spring-test:测试组件
集成兼容:
- spring-framework-bom:解决不同模块依赖版本不同问题