Spring之Spring源码环境搭建

115 阅读2分钟

Spring从2004年诞生;到现在已有十几年的历史了,它也有由最初的一个简单框架,演变成了今天的一个生态 那么,Spring正是这个生态一个核心,或者说是基础 。了解Spring先从Spring源码入手吧

一、准备

1、JDK 8

下载JDK8,安装并设置JAVA_HOME

2、spring-framework

解压后关注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文件中指定的

65cc19c3_1013081.png

二、编译

image.png

三、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)