zoukankan      html  css  js  c++  java
  • 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中的InitializingBean接口的使用
    解决MyBatis异常:The content of elements must consist of well-formed character data or markup.
    idea2019版与maven3.6.2版本不兼容问题
    IntelliJ IDEA更新maven依赖包
    JVM里的垃圾回收机制
    ASP.NET Core 中文文档 第四章 MVC(2.2)模型验证【转载】
    asp.net mvc Model验证总结及常用正则表达式【转载】
    SQL一次性插入大量数据【转载】
    ASP.NET Core依赖注入解读&使用Autofac替代实现【转载】
    WCF、WebAPI、WCFREST、WebService之间的区别【转载】
  • 原文地址:https://www.cnblogs.com/panzi/p/8874681.html
Copyright © 2011-2022 走看看