spring源码环境搭建
源码学习之路还没开始,在搭环境这差点就结束了… 可能还是我笨吧
关于版本
spring-framework-5.2.0.RELEASE
gradle-5.6.2-bin.zip
ideaIC 2019.3.4 x64
下载spring源码
https://github.com/spring-projects/spring-framework
选择需要的版本下载,解压缩源码包,源码目录下查看gradle版本:\gradle\wrapper\gradle-wrapper.properties
下载gradle
配置环境变量
GRADLE_HOME
添加path
命令行检查:gradle -v
修改源码包gradle镜像
我们需要添加jcenter和public仓库阿里云的镜像,加快依赖下载速度,这里可以参照阿里云仓库配置https://developer.aliyun.com/mvn/guide
build.gradle 文件修改:
repositories {
mavenCentral()
maven { url "https://repo.spring.io/libs-spring-framework-build" }
maven { url 'https://maven.aliyun.com/repository/public' } // 添加阿里云镜像
}
settings.gradle文件修改:
repositories {
gradlePluginPortal()
maven { url 'https://repo.spring.io/plugins-release' }
maven { url 'https://maven.aliyun.com/repository/public' } // 添加阿里云镜像
}
参照源码包下的import-into-idea文档![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/69dba73a971896e347ef57e59e007eb3.png)
预编译
源码目录下执行命令:gradlew :spring-oxm:compileTestJava
IDEA配置安装好的gradle![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/e123cab074114cd631f4873bc5aca39e.png)
IDEA导入spring源码
File -> New -> Project from Existing Sources -> Navigate to directory -> Select build.gradle
移除spring-aspects module
spring-aspects 引用了aspectj,IDEA编译会报错,这里直接移除该module可避免编译报错。后续需要此模块再配置aspectj
spring-aspects 模块右键 --> load / unload modules --> 选择spring-aspects —> unload
添加测试类,学习按视频添加xml配置
添加gradle模块,等待构建,这里我的IDEA构建了挺长时间的,应该是我的电脑原因![构建好的模块结构](https://i-blog.csdnimg.cn/blog_migrate/1b7985266dd6b953831a69316f598f76.png)
build.gradle 添加依赖
dependencies {
// 新增对spring的依赖
compile(project(":spring-context"))
compile(project(":spring-instrument"))
testCompile group: 'junit', name: 'junit', version: '4.12'
}
添加简单的测试类
package com.stu;
public class User {
private String name;
private int age;
private Role role;
// 省略 get / set 方法
}
package com.stu;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Test {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
User user = (User)context.getBean("user");
System.out.println(user);
}
}
resource下添加applicationContext.xml配置
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean name="user" class="com.stu.User" >
<property name="name" value="willncy"/>
<property name="age" value="23"/>
</bean>
</beans>
运行启动Test测试类中的main方法,就成功了,debug启动也要试一下~
网上找了好多搭建环境的帖子,一遍遍试都不行,最后我还是秉着简简单单相信官方文档的态度尝试了一次,终于成功了!关于源码版本是按我学习视频的版本来的,坎坎坷坷断断续续搭建环境2天,终于可以开启spring源码学习之路了,加油willncy