intellij idea 搭建spring源码环境

建议spring-framework的版本为5.0

对应的gradle版本为gradle-4.4.1-bin

我的idea是2019.1.3

建议spring-framework、gradle的版本和我一样,不然会有其他问题

gradle安装

参考gradle安装和配置

官网下载网址或者百度搜索,因为官网可能比较慢。

下载完解压就行。然后配置环境变量
在这里插入图片描述

path增加:

在这里插入图片描述

cmd命令执行 gradle -v查看是否正确

idea从git克隆源码

因为github下载有点慢,所以咱们去码云上面下载源码,去spring源码上复制https地址

https://gitee.com/mirrors/Spring-Framework.git

在idea下用git拉取分支,如下图所示

在这里插入图片描述

填入git的url,和本地目录位置,等待下载完成。

工程属性配置

在这里插入图片描述

如果没有跳出这一步导入的话,可以在项目根目录的build.gradle右键,我忘记具体选什么了,反正就是选择其中一个导入gradle项目。

打开项目之后会马上进行build,先停止build。切换版本,到5.0的版本。

之后编译会去下载gradle需要的jar包,如果下载速度很慢的话,可以修改gradle的仓库。增加一个阿里的仓库

	repositories {
        maven { url "http://maven.aliyun.com/nexus/content/groups/public" }
        maven { url "https://repo.spring.io/plugins-release" }
	}

然后再重新用gradle编译

导入完成后发现spring-core会报错,缺失了cglib和objenesis的jar包。

打开右边侧边栏gradle,找到spring-core下 Tesks中下的other

在这里插入图片描述

分别点击图中这两个命令

在这里插入图片描述
这里还有个问题,就是AspectJ模块会报错,这个比较麻烦,而且暂时用不到,所以就先不管它,或者将它删除。

创建测试项目

在根目录上右键新建一个module,选择一个模板,这里我用的是图中这个

在这里插入图片描述

然后填groupId和artifactId

接着选择项目所在目录,这里要注意我们测试项目所在的目录和其他的spring-*项目是平级的

生成文件后修改pom的内容,增加commons-logging的依赖。之后运行例子需要用到。

	  <dependency>
		  <groupId>commons-logging</groupId>
		  <artifactId>commons-logging</artifactId>
		  <version>1.2</version>
	  </dependency>

然后编写测试用例

我创建后的项目结构是这样的

在这里插入图片描述

几个文件的内容如下

MyTestBean

package org.springframework;

public class MyTestBean {
	private String testStr = "testStr";

	public String getTestStr() {
		return testStr;
	}

	public void setTestStr(String testStr) {
		this.testStr = testStr;
	}
	
}

beanFactoryTest.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 id="myTestBean" class="org.springframework.MyTestBean"></bean>
</beans>

AppTest

package org.springframework;

import static org.junit.Assert.assertEquals;

import org.junit.Test;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.ClassPathResource;


public class AppTest 
{

    @Test
    public void shouldAnswerWithTrue()
    {
		BeanFactory beanFactory = new XmlBeanFactory(new ClassPathResource("beanFactoryTest.xml"));
		MyTestBean bean = (MyTestBean) beanFactory.getBean("myTestBean");
		assertEquals("testStr",bean.getTestStr());
    }
}

这是一个最简单的bean加载,要运行成功还要有必须的依赖才行

添加依赖

file->project structure->modules->自己的module
在这里插入图片描述

其中大部分都是spring源码中的项目,其中的commons-logging是我们之前在pom里面加的,你也可以用maven自己下载这个jar包

然后跑我们的test,绿色正确即可。debug也可以去查看源码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值