zoukankan      html  css  js  c++  java
  • eclipse导入spring-framework ,阅读源码

    Spring框架内容过多,几十人甚至上百人的团队一起完成的成果,工具,感谢这些优秀的程序员及团队;说这个目的是对想阅读Spring源码的人提建议,找到合适自己的阅读方法,全部看完很不容易;建议看核心部分代码,学习设计模式,核心思想
    2019年10月14号 GitHub显示 Spring Framework 项目 contributors 为397 意思是说有近397人一起维护这个框架。当然,最开始的核心设计者是 Rod Johnson 慢慢演变到现在。 阅读几百名程序员维护的软件框架,要从中学到东西,方法很重要,不要一开始就想着看完所有源代码。

    部分核心

    spring-beans
    spring-aop
    spring-core
    spring-context
    

    本文主要内容

    导入spring源码过程,遇到的问题及解决方法

        $电脑环境
        #Eclipse Version: 2019-03 (4.11.0)
        #OS: Windows 10, v.10.0, x86_64 / win32
        #Java version: 1.8.0_191
    

    源码是版本spring-framework5.1.8
    导入项目前需要安装Gradle 并配置好PATH
    源码根目录里面有一个将项目代码导入eclipse的说明文件import-into-eclipse.md,可以参考这个文件去导入,能完成大部分导入工作。
    另外项目明确说了 Eclipse需要安装 AspectJ (AspectJ Development Tools) 和 Groovy 两个插件 不然项目可能会报一些错误,BuildShip插件也需要,但是eclipse4版本好像内置此插件

    步骤

    下面介绍步骤和遇到的一下问题如何解决:

    一 下载spring-framework源码

    1. 直接从GitHub仓库下载 https://github.com/spring-projects/spring-framework
    2. 访问 spring官网 找到资源,zip下载或者git下载
      下载源码后,记录文件位置,如果是zip文件首先解压

    二 构建eclipse环境,使用eclipse导入源码

    获取源代码后,还不能直接导入eclipse,需要将代码构建成eclipse可读形式

    1. 在源码目录下面打开cmd 执行 gradlew :spring-oxm:compileTestJava 命令 (用powershell没有用,这个应该是权限问题,懒得纠结,用cmd就好)

    2. 等待几分钟后,cmd窗口显示完成 使用eclipse 将整个文件导入 File -> Import -> Existing Gradle Project -> 找到源码目录 点击finish 开始导入

    解决项目报错问题

       中间遇到报错问题,直接找到报错位置,通常是依赖问题,某个模块jar包依赖不存在,找不到class文件
      
    此处这种报错有两种方法解决eclipse项目报错问题

    1. jre 依赖报错,一些java jre 的基础java 文件找不到(String,com.sun**,Thread),eclipse 已经有了jdk1.8 按理说应该依赖没问题,这里解决办法:
      报错的项目右键properties 找到build path -> remoce jre 先删除JRE system Library -> apply and close 关闭 ;然后再打开 Java Build Path -> add library 找到jdk目录,选择自己的jdk1.8 -> apply and close 之后clean project 刷新一下能解决报错

    2. CoroutinesUtils 报错,找不到该类。 解决办法:
      直接找到spring-framework-masterspring-core-coroutinesuildlibs 下面的spring-core-coroutines-5.2.0.BUILD-SNAPSHOT.jar包,将这个jar包导入依赖
      报错项目右键 properties -> java build path -> add jars -> 找到spring-core-coroutines-5.2.0.BUILD-SNAPSHOT.jar 位置,选择确定, project clean 一下,这个CoroutinesUtils not found 的问题就解决了

    然后就可以好好看spring 源码了,以上本人亲测,环境不同报错可能也会有差异,不是绝对,可以参考。

    spring 的核心包主要有
    spring-core Spring 核心
    spring-beans Spring 工厂类封装,IOC实现
    spring-context Spring 容器相关
    spring-aop Spring 切面编程,代理相关

    少数报错并不影响阅读学习核心代码,了解框架设计思想

  • 相关阅读:
    多个类定义attr属性重复的问题:Attribute "xxx" has already been defined
    好用的批量改名工具——文件批量改名工具V2.0 绿色版
    得到ImageView中drawable显示的区域的计算方法
    得到view坐标的各种方法
    实现类似于QQ空间相册的点击图片放大,再点后缩小回原来位置
    Material Designer的低版本兼容实现(五)—— ActivityOptionsCompat
    Android 自带图标库 android.R.drawable
    解决 Attempting to destroy the window while drawing!
    解决Using 1.7 requires compiling with Android 4.4 (KitKat); currently using API 4
    Material Designer的低版本兼容实现(四)—— ToolBar
  • 原文地址:https://www.cnblogs.com/Narule/p/11037436.html
Copyright © 2011-2022 走看看