Spring-framework 源码导入 IntelliJ IDEA 记录
前言
想学习spring框架,不看源码怎么行。网上有很多教程,但是自己实施起来还是稍微有点坎坷的,不过最后还是成功了。遂以此文记录。
环境说明:
Idea 2017.2.5
spring-framework v4.3.9.RELEASE
gradle 2.12 (版本太高好像有问题)
源码下载
首先我们从github上克隆 spring的源码。

然后使用 git tag 命令查看分支

我们将4.3.9.RELAESE 版本的代码下载到本地。


gradle 安装这里不在介绍。
开始导入
我们打开源码文件夹,打开 import-into-idea.md

然后执行命令: gradle cleanIdea :spring-oxm:compileTestJava (以下是一个稍微漫长的过程~~)


好,看到 BUILD SUCCESSFUL 很开心~~然后我们按照文档中的做即可。
1. Pre-compile `spring-oxm` with `./gradlew cleanIdea :spring-oxm:compileTestJava`
2. Import into IDEA (File->import project->import from external model->Gradle)
3. Set the Project JDK as appropriate (1.8+)
4. Exclude the `spring-aspects` module (Go to File->Project Structure->Modules)
5. Code away
排除万难
现实中当然没有文档中那么顺利,首先编译会出一些错误,没关系。我们先新建一个测试项目。 然后 File =>Project Structure. 选中测试项目,添加Dependencies。

这里要提一句,本来 common-logging我是没有加的,后来就会报ClassNotFound。于是我在pom,xml引入就好了。

<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.1</version>
</dependency>
最终测试
测试代码很简单:

public static void main(String[] args) {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");
context.start();
UserService userService = context.getBean(UserService.class);
String testResult = userService.getUserName();
System.out.println(testResult);
}
然后运行,在源码中打个断点,断点命中:

好了,剩下的我就不多说啦,我该去研究源码了!!!
总结
整体而言还算顺利,但是由于对modules不熟悉,所以中途遇到一些小问题。不过还好,算是解决了。希望文章对学习spring框架的你有所帮助。
Spring-framework 源码导入 IntelliJ IDEA 记录的更多相关文章
- spring framework 源码
spring framework 各版本源码下载地址 现在spring的源码下载地址真是不好找,这次终于找到了.记录一下,以帮助需要的朋友. https://github.com/spring-pro ...
- Idea搭建spring framework源码环境
spring的源码目前放在github上,https://github.com/spring-projects/spring-framework 一.安装Git 二.安装Gradle gradle为解 ...
- Spring Framework 源码编译导入
预先准备环境 Window 10 JDK环境 List item Gradle 以及其环境变量配置 spring-framework源码(https://gitee.com/mirrors/Sprin ...
- jmeter5.0之源码导入 IntelliJ IDEA
IDEA 编译 Jmeter 1.下载并解压 jmeter 源码 http://archive.apache.org/dist/jmeter/source/ 下载源码后解压『Jmeter』,我这边下载 ...
- spring framework源码之SpringFactoriesLoader
SpringFactoriesLoader 查询META-INF/spring.factories的properties配置中指定class对应的所有实现类. public abstract clas ...
- spring framework源码之AnnotationConfigApplicationContext
AnnotationConfigApplicationContext 内部使用了AnnotatedBeanDefinitionReader:ClassPathBeanDefinitionScanner ...
- JMeter源码导入到Intellij IDEA (八)
亲测:jmeter源码导入Intellij IDEA,导入,编译,运行! 一.环境:windows10操作系统,jdk1.8,Intellij IDEA 2018.3,jmeter5.0 下载jmet ...
- 精尽Spring MVC源码分析 - 调式环境搭建
该系列文档是本人在学习 Spring MVC 的源码过程中总结下来的,可能对读者不太友好,请结合我的源码注释 Spring MVC 源码分析 GitHub 地址 进行阅读 Spring 版本:5.2. ...
- 走进Spring Boot源码学习之路和浅谈入门
Spring Boot浅聊入门 **本人博客网站 **IT小神 www.itxiaoshen.com Spring Boot官网地址:https://spring.io/projects/spring ...
随机推荐
- ngix_http_stub_status_module
1.ngx_http_stub_status_module 是一个 Nginx 的内置 HTTP 模块,该模块可以提供 Nginx 的状态信息.默认情况下这个模块是不被编译进来的,所以在编译 Ngin ...
- 配置Hibernate的二级缓存
1.在applicationContex.xml文件里面添加二级缓存配置: <!-- 配置hibernate的sessionFactory --> <bean id="se ...
- [日常] Codeforces Round #441 Div.2 实况
上次打了一发 Round #440 Div.2 结果被垃圾交互器卡掉 $200$ Rating后心情复杂... 然后立了个 Round #441 要翻上蓝的flag QAQ 晚饭回来就开始搞事情, 大 ...
- C语言博客作业--一二维数组。
一.PTA实验作业 题目1:7-1 将数组中的数逆序存放 1. 本题PTA提交列表 2. 设计思路 定义三个整型变量n用来存放整数个数i,j是循环数 scanf("%d",& ...
- 20145237 《Java程序设计》第八周学习总结
20145237 <Java程序设计>第八周学习总结 教材学习内容总结 第十五章 通用API 15.1 日志 日志API简介 • java.util.logging包提供了日志功能相关类与 ...
- 关于java中的数组
前言:最近刚刚看完了<Java编程思想>中关于数组的一章,所有关于Java数组的知识,应该算是了解的差不多了.在此再梳理一遍,以便以后遇到模糊的知识,方便查阅. Java中持有对象的方式, ...
- raid5 / raid5e / raid5ee的性能对比及其数据恢复原理
RAID 5 是一种存储性能.数据安全和存储成本兼顾的存储解决方案. RAID 5可以理解为是RAID 0和RAID 1的折中方案.RAID 5可以为系统提供数据安全保障,但保障程度要比Mirror低 ...
- js:防抖动与节流
http://blog.csdn.net/crystal6918/article/details/62236730
- caffe使用ctrl-c不能保存模型
caffe使用Ctrl-c 不能保存模型: 是因为使用的是 tee输出日志 解决方法:kill -s SIGINT <proc_id> 或者使用 GLOG_log_dir=/path/to ...
- nyoj 开方数
开方数 时间限制:500 ms | 内存限制:65535 KB 难度:3 描述 现在给你两个数 n 和 p ,让你求出 p 的开 n 次方. 输入 每组数据包含两个数n和p.当n和p都为0 ...