• Dive into Spring framework -- 搭建spring 源码的开发环境


     spring是一个类之间依赖的管理容器,大家都知道,但我们中很多人都仅仅停留在使用的层面,但spring本身具有极大的研究价值,所以在使用了几年spring之后,还是想深入的探究一下其根源。记录于此,愿与各位共享。

    spring有很多功能模块,从spring的官网doc 我们可以看到其分了29个部分,当然主要内容是从chapter 5 IoC开始的。现在来说明一下接下来要各个部分,我们要分析的内容。对于每个大的模块,我们会深入分析各个模块的源码,深入理解这些实现方式,并通过scala来实现一个山寨的框架,用Scala是不想直接抄袭,可以说是照葫芦画瓢。刚刚说了,spring是个大集成,她不仅仅有设计良好的各个模块用以支撑各类之间的dependences,并且有支持很多其他框架的接口模块,这个对我们来说是额外的收获,所以在后面的各个模块中,其他的那些第三方框架,咱也不会落掉任何一个,理解他们我们可以更加深入的理解spring是如何包容第三方框架。尤为可喜的是spring在尽力支持第三方框架的最新版本。能坚持下去,咱还是能有点收获的。

    spring的开放源码在GitHub上,别跟外国人客气,尽情的去把他们的优秀的成果down下来。这里要特别说明一下如何将spring源码导入到Eclipse。 

    现在spring把源码各个模块里面的pom文件都删除了,我们就不能直接用maven来导入了,pity! 他们现在使用gradle来管理项目。 

    第一步是搭建你的gradle环境:

    Eclipse的gradle插件的update site: http://dist.springsource.com/release/TOOLS/gradle,只需要选择“extensions / gradle integration”. 通过Eclipse --> Help --> Install New Software... 来安装。耐心的安装上plugin之后,去下源码,git clone https://github.com/spring-projects/spring-framework.git

    download完成后,先别急导入到Eclipse,看看github项目里面说的,配置prerequisites:需要git和jdk8(Git and OpenJDK 8 early access build 100 or later
    ),请注意那里面的提示:一定要把JAVA_HOME指向jdk1.8.0.

    接下来进入源码路径, 运行import-into-eclipse.sh(linux/Mac).这一步你就照着提示做下去就可以了。比较苦逼的是能否一次性把所有依赖包都下下来,如果不能一次性得到最终的complete提示,你就多试几次吧。我就碰到好几次运行到中途就卡住了,一直在build一个模块,实际上就是在下载对应jar依赖包。于是我就取消(ctrl+c),再重新运行,用了一个晚上终于成功看到了最后complete的提示。

    设置Eclipse的jdk环境变量,这里就不多说了,但是将默认的选择成jdk1.8.0. 

    现在可以导入到Eclipse了,在workspace里面import-->Gradle --> Gradle project, 选择你的spring源码路径,会有提示说要build model,那就build吧。

    build完成后,把run before 和run after两个选项去掉,finish!

    一切都成功的话,你会看到各个模块都是有包结构的,否则就会有很多编译错误。 Wish you good luck!


    如果有什么问题,尽情留言,咱怎么的也能解决掉,你说呢?

    转载请注明出处。

  • 相关阅读:
    js汉字转换为阿拉伯数字支持十到十九
    JS中判断是中文数字的函数
    一个JS正则的字符串替换函数
    thinkphp3.2.3使用formdata的多文件上传
    计算列表中的名字出现的订单中的订单总额
    配置ssl使用了不受支持的协议。 ERR_SSL_VERSION_OR_CIPHER_MISMATCH
    IIS8.5中的强制https直接修改web.config文件和顶级域名跳转www和过滤子目录不强制跳转
    关于wordpress4.8中的Twenty Seventeen主题的主题选项增加章节的实现
    excel中统计COUNTIFS的值为0
    thinkphp3.2.3集成phpexcel1.8导出设置单元格合并
  • 原文地址:https://www.cnblogs.com/ericchen/p/3432311.html
Copyright © 2020-2023  润新知