title: 學(xué)習(xí)SpringFramework源碼
date: 2019-12-16 10:13:28
categories: 后端
tags:
- SpringFramework
學(xué)習(xí)之前有必要說(shuō)明一下衣屏,這里學(xué)的是SpringFramework的源碼温治,也就是Spring框架郭毕。在本地搭建一個(gè)能跑SpringFramework源碼的環(huán)境有點(diǎn)麻煩,下面給出我搭建步驟吞琐。
搭建SpringFramework源碼環(huán)境
這個(gè)過(guò)程有些慢,而且有時(shí)候摸不著頭腦双谆,切記不要著急渗常,多百度。
環(huán)境準(zhǔn)備
環(huán)境準(zhǔn)備:說(shuō)明一下由缆,SpringFramework 5.0x要求的Gradle版本低一些注祖,而SpringFramework5.1x要求的Gradle版本需要5.x以上。強(qiáng)烈建議和我這里版本一致均唉。
配置Gradle環(huán)境
1.將bin.zip解壓是晨,放到自定義目錄
2.新建GRADLE_HOME
變量,指定gradle的根目錄
3.在path
變量中舔箭,添加%GRADLE_HOME%\bin
4.配置Gradle的倉(cāng)庫(kù)GRADLE_USER_HOME
(這個(gè)配上吧)
檢驗(yàn)Gradle環(huán)境
1.win+r
2.輸入cmd
3.輸入gradle -v
罩缴,出現(xiàn)下面結(jié)果表示配置成功
使用idea導(dǎo)入SpringFramework源碼
1.使用ide打開文件夾
2.在導(dǎo)入引導(dǎo)頁(yè)蚊逢,配置指定Gradle和Gradle的倉(cāng)庫(kù)及VM內(nèi)存(這個(gè)內(nèi)存信息配置,在import-into-idea.md
中)
3.編譯中可能出現(xiàn)的錯(cuò)誤箫章,參考老哥的博客烙荷,我遇到的就是其中No such property
4.在新建自己的包之前需要在spring-core
模塊下進(jìn)行,Gradle的task命令檬寂;因?yàn)槿笔pring-cglib-repack和spring-objenesis-repack终抽。我參考老哥的博客解決的
新建模塊進(jìn)行測(cè)試
1.新建模塊,選擇Gradle桶至,并勾選Java(默認(rèn)就是)昼伴,直接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.新建一個(gè)Service類女蜈,用于測(cè)試
@Component
public class CityService {
}
5.Test類中進(jìn)行測(cè)試持舆,輸出如圖所示結(jié)果,表示源碼環(huán)境配置成功鞭光!
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);
}
}