spring源码阅读环境搭建
① 依赖工具
- gradle
- Git
- jdk1.8
- InteliJ IDEA
笔者当前由于囊中羞涩 所有的环境是windows环境,如有不一样的碰见一些无法预测的问题的话,请在文章后续中进行留言。
②源代码拉取
大家可以采用git直接fork的方式直接进行代码的拉取,建立自己的仓库做自由的提交,我在这里就直接down zip源码包进行搭建了。官方仓库地址。
拉取完项目之后,导入idea中 idea中的gradle会直接对项目源码进行build的(在此提醒,gradle安装之后的环境变量还需自己配置,以及idea中有关gradle的配置还请自行的去百度解决)
打开 IDEA Terminal ,输入如下命令,预编译 spring-oxm 项目:
gradlew :spring-oxm:compileTestJava
③ 单元测试
在 spring-context 项目中的 src/test/java/example 目录下,已经提供了一些示例。
① 解析 XML 配置文件成对应的 BeanDefinition 们的流程
可调试 org.springframework.beans.factory.xml.XmlBeanDefinitionReaderTests 的 #withFreshInputStream() 和 #withImport() 这两个单元测试。
相比来说,后者比前者多了一个 <import /> 标签的解析。当然,XmlBeanDefinitionReaderTests 类中,其它方法也可以简单调试下。看胖友的兴趣哈。
② 加载 Bean 的流程
可调试 org.springframework.beans.factory.xml.AbstractBeanFactoryTests 这个单元测试类里的方法。
实际上,AbstractBeanFactoryTests 是一个抽象类,所以在运行时,需要选择对应的子类,例如 XmlListableBeanFactoryTests 类。
③ ClassPathXmlApplicationContext 的流程
可调试 org.springframework.context.support.ClassPathXmlApplicationContextTests 这个单元测试类里的方法。例如 #testResourceAndInputStream() 方法。
④ 解析 Properties 配置文件成对应的 BeanDefinition 们的流程
可调试 org.springframework.beans.factory.support.PropertiesBeanDefinitionReaderTests 这个单元测试里的方法。
⑤ 调试 Spring AOP 相关的流程
⑥ 调试 Spring Transaction 相关的流程
⑦ 调试 Spring MVC 相关的流程
后续为大家连载解读一下spring各模块之间的写作以及流程。