title: 学习SpringFramework源码
date: 2019-12-16 10:13:28
categories: 后端
tags:
- SpringFramework
学习之前有必要说明一下,这里学的是SpringFramework的源码,也就是Spring框架。在本地搭建一个能跑SpringFramework源码的环境有点麻烦,下面给出我搭建步骤。
搭建SpringFramework源码环境
这个过程有些慢,而且有时候摸不着头脑,切记不要着急,多百度。
环境准备
环境准备:说明一下,SpringFramework 5.0x要求的Gradle版本低一些,而SpringFramework5.1x要求的Gradle版本需要5.x以上。强烈建议和我这里版本一致。
配置Gradle环境
1.将bin.zip解压,放到自定义目录
2.新建GRADLE_HOME
变量,指定gradle的根目录
3.在path
变量中,添加%GRADLE_HOME%\bin
4.配置Gradle的仓库GRADLE_USER_HOME
(这个配上吧)
检验Gradle环境
1.win+r
2.输入cmd
3.输入gradle -v
,出现下面结果表示配置成功
使用idea导入SpringFramework源码
1.使用ide打开文件夹
2.在导入引导页,配置指定Gradle和Gradle的仓库及VM内存(这个内存信息配置,在import-into-idea.md
中)
3.编译中可能出现的错误,参考老哥的博客,我遇到的就是其中No such property
4.在新建自己的包之前需要在spring-core
模块下进行,Gradle的task命令;因为缺失spring-cglib-repack和spring-objenesis-repack。我参考老哥的博客解决的
新建模块进行测试
1.新建模块,选择Gradle,并勾选Java(默认就是),直接next就行
2.我新建了lth-learn
模块,然后在本模块的build.grale
文件中,添加compile project(':spring-context')
3.新建AppConfig类,添加@Configuration
注解,并添加@ComponentScan("com.tianhao.luo")
指定扫描包路径
@Configuration
@ComponentScan("com.tianhao.luo")
public class AppConfig {
}
4.新建一个Service类,用于测试
@Component
public class CityService {
}
5.Test类中进行测试,输出如图所示结果,表示源码环境配置成功!
public class Test {
public static void main(String[] args) {
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);
Object cityService = context.getBean(CityService.class);
System.out.println(cityService);
}
}