Spring源码阅读调试环境搭建(MacOS)

1 下载Spring源码

git clone https://github.com/spring-projects/spring-framework

2 下载Gradle

下载地址:https://gradle.org/install/#helpful-information

因为spring源码和gradle有版本一致性的问题,下载安装完gradle之后需要在spring源码根目录执行响应的gradle版本设置:

./gradlew wrapper --gradle-version=7.4.2 --distribution-type=bin

在这里插入图片描述

3 spring源码编译

进入spring源码根目录下执行:

./gradlew :spring-oxm:compileTestJava

4 导入spring源码到IDEA

github提供的已知问题.

修改spring源码根目录中的gradle.properties文件:

org.gradle.daemon=true

org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

org.gradle.parallel=true

org.gradle.configureondemand=true

File -> New -> Project from Existing Sources -> 找到选择spring-framework源码并且导入:
在这里插入图片描述

配置项目用本地的gradle,不用idea自带的,并且设置jdk为11:
在这里插入图片描述

这个时候idea就会开始自动build了,等待即可

5 排除模块

可右击某个模块 -> Load/Unload Modules->Unload 即可:
在这里插入图片描述

6 创建调试测试模块

选择File->New->Module,然后选择Gradle,选择jdk为1.8,模块名为spring-debug,创建完成之后拷贝spring-test的gradle配置到sping-debug中进行覆盖,并修改描述为Spring Debug

在这里插入图片描述

编写测试类:

package com.redisread.bean.test;

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

	public String getTestStr() {
		return this.testStr;
	}

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

创建bean配置文件:

<?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="com.redisread.bean.test.MyTestBean"/>

</beans>

新建单测:

package com.redisread.bean.test;

import junit.framework.TestCase;
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 MyTestBeanTests extends TestCase {

	@Test
	public void testSimple() {
		BeanFactory bf = new XmlBeanFactory(new ClassPathResource("beanFactoryTest.xml"));
		MyTestBean bean = (MyTestBean) bf.getBean("myTestBean");
		System.out.println(bean.getTestStr());
		assertEquals("testStr", bean.getTestStr());
	}
}

就可以打断点调试了!

常见错误参考

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JiahongWu

请我喝咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值