简介
搭建Spring官方源码,方便源码研究,以及在源码中添加注释等等。
环境准备
环境准备:
1.idea
2.jdk8
3.gradle-5.6.4
4.spring源码(版本:spring-framework-5.2.12.RELEASE)
备注:
目前Spring方便搭建的环境是JDK1.8+5.2.12.RELEASE版本,其他版本搭建比较麻烦,问题略多
环境完全一致才能顺利通过!!!
Spring源码下载
1、GitHub - spring-projects/spring-framework: Spring Framework
2、需要RELEASE版,发行版
3、点击相对应的版本,然后看下图进行下载
gradle的安装
gradle是和maven类似的一个jar包管理工具,有兴趣的同学可以研究一下。
gradle的下载
查看需要用到的gradle版本:
spring-framework-v5.2.12.RELEASE\gradle\wrapper\gradle-wrapper.properties
Gradle下载地址:Gradle | Releases
gradle环境配置
1、解压刚刚下载的gradle压缩包
2、打开电脑的环境变量,配置GRADLE_HOME ,如下图:
3、在系统变量 path中加入:%GRADLE_HOME%\bin
4、测试gradle是否安装完成:在cmd输入gradle -v如果出现版本号这些就算是安装成功了。
配置gradle的阿里云镜像
执行完gradle -v 在C盘用户名下会自动生成.gradle文件夹
在该文件夹下创建文件:init.gradle,加入如下内容
allprojects {
repositories {
mavenLocal()
maven { url 'https://maven.aliyun.com/repository/public/' }
maven { url 'https://maven.aliyun.com/repository/spring/'}
maven { url 'https://maven.aliyun.com/repository/google/'}
maven { url 'https://maven.aliyun.com/repository/gradle-plugin/'}
maven { url 'https://maven.aliyun.com/repository/spring-plugin/'}
maven { url 'https://maven.aliyun.com/repository/grails-core/'}
maven { url 'https://maven.aliyun.com/repository/apache-snapshots/'}
mavenCentral()
}
}
修改Spring源码中的一些地方
1、找到build.gradle文件并打开,注释掉一行代码,没有注释编译不会成功,如下图:
IDEA导入Spring源码
1、使用idea打开源码那个文件夹就行
2、默认就在编译,不用管就行,等到,如下图:
这里第一次我是用了7多分钟,整个过程要编译、下载jar包、idea更新索引
测试
1、点击项目名,右击鼠标新建一个module(new->model->gradle–>输入模块名称amyproject),注意选择gradle。随便命名。
第一次创建项目需要下载大量依赖包,耗时较长,9分钟。。。
2、给自己新添加的模块添加依赖:
compile(project(":spring-context"))
添加后刷新
3、代码
创建配置
package com.config;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@Configuration
@ComponentScan("com")
public class AppConfig {
}
需要注入的bean
package com.service;
import org.springframework.stereotype.Service;
@Service
public class UserService {
public void save(){
System.out.println("哈哈哈");
}
}
main方法执行
package com;
import com.config.AppConfig;
import com.service.UserService;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
public class Main {
public static void main(String[] args) {
BeanFactory beanFactory = new AnnotationConfigApplicationContext(AppConfig.class);
UserService userService = beanFactory.getBean(UserService.class);
userService.save();
}
}