Spring从2004年诞生;到现在已有十几年的历史了,它也有由最初的一个简单框架,演变成了今天的一个生态 那么,Spring正是这个生态一个核心,或者说是基础 。了解Spring先从Spring源码入手吧
一、准备
1、JDK 8
下载JDK8,安装并设置JAVA_HOME
2、spring-framework
- github.com/spring-proj…
- 选通过标签指定版本后再下载zip文件
解压后关注4个文件,spring-framework-5.3.27.zip
- build.gradle:类似于 maven 的 pom.xml
- settings.gradle:用于指示Gradle在构建应用时应将哪些模块包含在内;
- gradle.properties:主要是gradle 的一些属性配置,例如后台进程内存大小;
- import-into-idea.md:官方提供的spring源码导入idea的步骤和注意说明
修改 settings.gradle 文件,添加上阿里云的 maven 仓库 ,只保留一个阿里云的仓库即可,多的话用不了还耽误搜索时间
maven { url "https://maven.aliyun.com/repository/public" }
修改gradle.properties文件(这里可以不用改,也可以编译成功)
version=5.3.22-SNAPSHOT
### 设置此参数主要是编译下载包会占用大量的内存,可能会内存溢出
org.gradle.jvmargs=-Xmx2048m
### 开启 Gradle 缓存
org.gradle.caching=true
### 开启并行编译
org.gradle.parallel=true
kotlin.stdlib.default.dependency=false
修改build.gradle文件,加上使用阿里云仓库
maven { url 'https://maven.aliyun.com/nexus/content/groups/public/' }
maven { url 'https://maven.aliyun.com/nexus/content/repositories/jcenter'}
3、gradle
下载gradle的版本,看spring-framework代码中官方所有的代版本,gradle包下有了个radle-wrapper.properties
文件中指定的
二、编译
三、Spring各模块介绍
1、核心模块
-
spring-core:核心模块;供了框架的基本组成部分,包括控制反转(Inversion of Control,IOC) 和依赖注入(Dependency Injection,DI)功能
-
spring-beans:Bean:提供了BeanFactory,是工厂模式的一个经典实现
-
spring-context:上下文,即IOC容器(ApplicationContext)
-
spring-context-support:对IOC的扩展,以及IOC子容器
-
spring-context-indexer:类管理组件和Classpath扫描
-
spring-expression:表达式语句
2、数据访问与集成
-
spring-jdbc:提供JDBC主要实现模块,用于简化JDBC操作
-
spring-tx:spring-jdbc事务管理
-
spring-orm:主要集成Hibernate5,jpa
-
spring-oxm:将java对象映射成xml数据或将xml映射为java对象
-
spring-jms:发送和接受消息(MQ)web模块:
-
spring-web:提供了最基础的web支持,主要建立在核心容器上
-
spring-webmvc:实现了spring mvc的web应用
-
spring-websocket:主要与前端页的全双工通讯协议
-
spring-webflflux:一个新的非阻塞式Web框架(5.0中引入)
3、切面编程
-
spring-aop:面向切面编程,CGLB,JDKProxy
-
spring-aspects:集成AspectJ,Aop应用框架
-
spring-instrument(工具):动态Class Loading模块
-
spring-messaging:4.0加入的模块,主要集成基础报文传送应用
4、测试
- spring-test:测试组件(JUnit、Mock)