下载spring源码
编译前配置工作
下载最新版idea
idea当中配置Git可用
idea当中配置gradle的build方式为idea
系统及idea中jdk版本设置为1.8
修改源码build.gradle配置文件仓库为阿里镜像
修改gradle-wrapper.properties配置文件
导入到idea中,等待下载jar包即可
示例编写
新建自己的module
引用项目其它module
编写测试代码
常见的错误
不是个Git仓库
Kotlin警告报错
cglib或者objenesis报错
spring-aspects 报错
java: 找不到符合
1.下载spring源码
学习版本
version=5.2.19.BUILD-SNAPSHOT
https://gitee.com/mirrors/Spring-Framework/tree/5.2.x/
选择5.2.x分支,然后下载zip包即可。

2.编译前配置工作
2.1 下载最新版idea
社区版本即可
https://www.jetbrains.com/idea/download/other.html
2.2 idea当中配置Git可用

2.3 idea当中配置gradle的build方式为idea
可以等项目导入后改,也不着急.

2.4 系统及idea中jdk版本设置为1.8

2.5 修改源码build.gradle配置文件仓库为阿里镜像


这个也注释掉,有告警其实正常,我们忽略即可。

2.6 修改gradle-wrapper.properties配置文件
原始下载网站链接:
https://services.gradle.org/distributions
选择properties中的版本即可
distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-bin.zip
gradle-wrapper.properties配置文件路径:spring-framework-5.2.19/gradle/wrapper/gradle-wrapper.properties

distributionurl gradle本地配置mac版本distributionBase=GRADLE_USER_HOMEdistributionPath=wrapper/distsdistributionUrl=file\:/Users/hs/Documents/toolsgradle/localzip/gradle-5.6.4-bin.zipzipStoreBase=GRADLE_USER_HOMEzipStorePath=wrapper/distswin版本:distributionBase=GRADLE_USER_HOMEdistributionPath=wrapper/distsdistributionUrl=file\:///d\:/BaiduNetdiskDownloadgradle-5.6.4-bin.zipzipStoreBase=GRADLE_USER_HOMEzipStorePath=wrapper/dists
2.7 导入到idea中,等待下载jar包即可
idea直接open打开文件夹,剩下的就等待即可。可能时间会比较久,看个人的网速,一般在30分钟左右。

3.示例编写
3.1 新建自己的module
编译通过之后,建一个自己的module,用于测试spring.
如下图,选择Gradle,下一步后命名为spring-example.

3.2 引用项目其它module
optional(project(":spring-context"))



3.3 编写测试代码
测试代码
public class Test1 {public static void main(String[] args) {AnnotationConfigApplicationContext context= new AnnotationConfigApplicationContext();context.register(Bean1.class);context.refresh();System.out.println(context.getBean(Bean1.class));}}
控制台打印bean地址
> Task :spring-example:Test1.main()com.spring.Bean1@eec5a4aBUILD SUCCESSFUL in 3s
注释掉 context.register(Bean1.class);控制台报异常
Exception in thread "main" org.springframework.beans.factory.NoSuchBeanDefinitionException:No qualifying bean of type 'com.spring.Bean1' available
4.常见的错误
4.1 不是个Git仓库
fatal: not a git repository (or any of theparent directories): .git
4.2 Kotlin警告报错
Kotlin: warnings found and -Weeror specified
allWarningsAsErrors = true

4.3 cglib或者objenesis报错

找到gradle下的spring-core,选择build/task,cglibRepackJar和objenesisRepackJar运行即可


4.4 spring-aspects 报错

解决:
找到setting.gradle文件,注释掉重新编译这一行即可
include "spring-aspects"

4.5 java: 找不到符合


ps:如果继续遇到其它module有类似的问题,就按照一样的方法去对应项目跑test.




