一,环境配置
操作系统:Unbutu14.04LTS
JDK: 1.8.0_40
git: 1.9.1
gradle: 2.2.1
二,源码下载-编译-导入eclipse-验证
1,下载
使用git直接clone Spring源码到本地:git clone git://github.com/SpringSource/spring-framework.git
2,编译
编译过程,这里所谓的编译是通过gradle工具编译Spring-framework的项目文件,主要干的事情就是下载Spring各个模块依赖的jar包,这个过程一般情况下非常慢,可能是因为资源都在墙外,并且可能出现jar包很久下载不下来的情况,这时候直接ctrl+c退出编译命令后再次执行命令,对于已经下载下来的以来包不会再次下载,所以编译的过程相当与可以断线重连的效果。
①进入源码目录执行:gradle eclipse -x :eclipse (我整整花费了1上午才编译通过)
②,执行gradle install 这个具体神马作用我还不清楚,但是不执行这个命令导入①编译后的代码进eclipse后会有一堆build path error,猜想应该是将步骤1中down下来的依赖存入gradle本地仓库以便于项目查找使用相关依赖。
③,直接通过eclipse的import到入Spring-framework源码目录
groovy这个项目可能会有方法找不到,主要原因时你的eclipse没有装Groovy插件,装上后clean下项目就OK了
④,验证
写一个简单的测试项目,简单的IoC调用功能,依赖spring-context项目
a),TestSpring.java
1 import org.springframework.context.ApplicationContext; 2 import org.springframework.context.support.ClassPath 3 4 import com.test.bean.Lover; 5 6 7 public class TestSpring { 8 /** 9 * @param args10 */11 @SuppressWarnings("resource")12 public static void main(String[] args) {13 ApplicationContext ctx = new ClassPath);14 Lover p = ctx.getBean("lover",Lover.class);15 p.info();16 }17 18 }
b),Lover.java
1 package com.test.bean; 2 3 public class Lover { 4 5 private String name; 6 private int age; 7 8 public String getName() { 9 return name;10 }11 public void setName(String name) {12 this.name = name;13 }14 public int getAge() {15 return age;16 }17 public void setAge(int age) {18 this.age = age;19 }20 public void info(){21 System.out.println("Spring is a best lover fro you~~~");22 }23 }
c),bean.
1 <? 2 <beans 3 4 5 6 xsi:schemaLocation="http://www.springframework.org/schema/beans 7 http://www.springframework.org/schema/beans/spring-beans-2.5.xsd 8 http://www.springframework.org/schema/context 9 http://www.springframework.org/schema/context/spring-context-2.5.xsd10 ">11 12 <bean id="lover" class="com.test.bean.Lover" scope="prototype"></bean>13 14 </beans>
三,总结
本文主要小结了Spring源码的下载(github),编译(gradle),导入eclipse的过程,最后简单测试了导入eclipse后的SpringIoC模块的功能。从此开启了Spring源码深入研究之路。
本文版权所有,转载请注明出处
原标题:Spring源码研究
关键词:Spring