1、下载spring源码:https://github.com/spring-projects/spring-framework
在tags中选择release(稳定)版本,我下载的是 spring-framework-5.2.21.RELEASE
不同的spring版本需要的jdk也不一样,我本地是jdk8
2、 解压下载的文件,打开 ..\gradle\wrapper 目录下的文件 gradle-wrapper.properties
其中有个 distributionUrl属性,去掉https后面的 \ 后 复制到浏览器中下载gradle(每个spring版本对应的gradle版本都不一样,如这里的版本是5.6.4);
3、打开源码根目录下的 settings.gradle 和 build.gradle,添加阿里云的仓库地址
build.gradle
maven{ url 'https://maven.aliyun.com/nexus/content/groups/public/'}
maven{ url 'https://maven.aliyun.com/nexus/content/repositories/jcenter'}
setting.gradle
maven{ url 'https://maven.aliyun.com/nexus/content/groups/public'}
4、在源码根目录打开cmd控制台,指定命令 gradlew :spring-oxm:compileTestJava
5、打开idea,File-->New-->Project from Existing Sources 选择根目录的 build.gradle,点 OK
6、配置gradle,File-->Setting-->gradle
7、新建module测试,File-->New-->Module
创建的mudule中会自动生成一个build.gradle,在build.gradle中引入spring-context的依赖
此时在module中创建测试类,我创建了三个测试类
创建测试类过程中 @Service或 AnnotationConfigApplicationContext 无法import的情况,说明spring-context没有引入进来,则需要一下两步操作:
1、右键 build.gradle --> Build Module
2、刷新gradle,在 runtimeClasspath 下面出现 spring-context即可
测试类的目录及代码如下 :
UserService:
@Service
public class UserService { public void a(){ System.out.println("userService方法"); } }
BeanConfig :
@ComponentScan(value = "service")
public class BeanConfig { }
ModuleMain :
public class ModuleMain { public static void main(String[] args) { AnnotationConfigApplicationContext applicationContext = new
AnnotationConfigApplicationContext(BeanConfig.class);
UserService userServiceN =applicationContext.getBean("userService",UserService.class);
userServiceN.a();
}
}
运行 ModuleMain 的main方法,能正常获取到 UserService 对象并成功执行方法即可
build.gradle中的代码如下,如需要引入多个spring项目,在compile中添加多个project,然后再右键 build.gradle --> Build Module,刷新gradle
搭建好的代码:链接:https://pan.baidu.com/s/1Mk8YPvgt1V4evKrLVgxPAA?pwd=y2xk