1. 程式人生 > >Spring原始碼閱讀環境搭建

Spring原始碼閱讀環境搭建

目錄

  • 安裝gradle
  • 匯入Spring原始碼
  • 建立測試模組my-test
  • 本文思維導圖

本文將粗略的搭建一個Spring原始碼的閱讀環境,為後面的原始碼閱讀做一個準備。做任何事情不管是有一個完美的或者是不太完美的開頭,只要去做了,那麼就是一種勝利。

由於spring使用了gradle構建工具,接下來先安裝gradle。

安裝gradle

  • 從Gradle官網下載gradle安裝包,開啟https://gradle.org/releases/

  • 將下載的安裝包gradle-x.x.x-all.zip解壓到當前目錄

  • 環境變數配置

    • 配置GRADLE_HOME

    • 配置Path

  • 開啟目錄行工具,輸入gradle -v,能看到gradle的版本資訊表示安裝已經成功

匯入Spring原始碼

Spring在github上的倉庫地址是:https://github.com/spring-projects/spring-framework,本文不會直接去github上去下載原始碼,網速實在太慢。本文使用的碼雲上Spring倉庫的映象,該映象每日同步一次,地址是https://gitee.com/mirrors/Spring-Framework

  • 從git匯入專案

  • 填寫要克隆的git倉庫資訊,可以點選右邊的【Test】按鈕測試,等待倉庫克隆完成

    • 輸入的URL地址: https://gitee.com/mirrors/Spring-Framework.git
  • 開啟匯入的Spring專案

  • 從gradle匯入Spring專案,等待gradle build完成

    注意:
    • 上面使用的是本地自己安裝的gradle。
    • idea中gradle預設的服務目錄路徑是使用者目錄下的.gradle目錄,對於Administrator使用者,對應的目錄是C:\Users\Administrator\.gradle。該目錄佔用的空間一般比較多,所以在這裡將這個目錄放到其他的盤中。
  • 構建完成後報錯如下(只列出了一部分):

    ...
    Error:(63, 30) java: cannot find symbol
      symbol:   class Signature
      location: class org.springframework.cglib.core.KeyFactory
    ...
      location: class org.springframework.cglib.proxy.Enhancer
    Error:(152, 30) java: cannot find symbol
    ...

    spring未了避免與cglib和objenesis衝突,將cglib和objenesis相關的包重新repack到org.springframework.cgliborg.springframework.objenesis包中,這部分的程式碼沒有包含到原始碼當中。構建之前,可以通過新增Gradle任務來解決,見:https://github.com/spring-projects/spring-framework/blob/master/import-into-idea.md#known-issues和https://youtrack.jetbrains.com/issue/IDEA-160605

    解決辦法如下:

    • 在idea中開啟Gradle面板
    • 在右側的Gradle面板Spring -> Tasks -> other -> cglibRepackJar
    • 啟用任務
    • 選擇要啟用的cglibRepackJar任務
    • 重新構建專案(花費的時間較長)

建立測試模組my-test

為了方便編寫測試spring的程式碼,在spring-framework單獨新建一個模組my-test

  • 右鍵spring-framework專案->New->Module...

  • 輸入ArtifactId: my-test

  • 一路下一步,最好點選完成,新的模組就建好了
  • 新增依賴:api(project(":spring-context"))

  • 為了能讓my-test自動匯入相關的依賴,在Gradle面板中右鍵spring節點

  • 在my-test模組中編寫程式測試

    • 建立MyApplication

      package com.zfx;
      
      import org.springframework.context.ApplicationContext;
      import org.springframework.context.support.ClassPathXmlApplicationContext;
      
      public class MyApplication {
      
          public static void main(String[] args) {
              ApplicationContext ac = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
              Hello hello = (Hello)ac.getBean("hello");
              hello.sayHello();
          }
      
      }
    • 在resources目錄下新建applicationContext.xml

      <?xml version="1.0" encoding="UTF-8"?>
      <beans xmlns="http://www.springframework.org/schema/beans"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
      
          <bean id="hello" class="com.zfx.Hello"></bean>
      
      </beans>
    • 新建Hello

      package com.zfx;
      
      public class Hello {
      
          public void sayHello() {
              System.out.println("Hello, zhangfengxian");
          }
      
      }
    • 執行MyApplication,可以看到控制檯輸出:Hello, zhangfengxian

  • 至此整個環境算是搭建好了

本文思維導圖

相關推薦

Spring原始碼閱讀Spring原始碼閱讀環境搭建

閱讀Spring原始碼,我們可以通過以下兩種方式: 直接在Idea/Eclipse上建立自己的java maven/gradle專案,匯入Spring特定版本依賴Jar和原始碼,直接執行測試程式碼,逐步除錯閱讀 從github直接獲取Spring原始碼專案,基於Spri

Spring原始碼閱讀環境搭建

目錄 安裝gradle 匯入Spring原始碼 建立測試模組my-test 本文思維導圖 本文將粗略的搭建一個Spring原始碼的閱讀環境,為後面的原始碼閱讀做一個準備。做任何事

SpringSpring Boot2.0原始碼閱讀環境搭建和結構

一:Spring 第一步:安裝git和gradle,以及Java8,並配置環境變數。   第二步:開啟gitbash,cd到你要放置spring原始碼工程的目錄,輸入:git clone https://github.com/spring-projects/sprin

Spring原始碼解析(一)】Idea搭建Spring原始碼閱讀環境

準備階段 Idea Gradle Git jdk 詳細步驟 以上工具安裝好,這裡主要記錄一下Git和Gradle,工作一直都是用的svn和Maven,所以對於Git和Gradle瞭解的不算多。 (1) Gradle安裝        Gradle的安裝很簡單,和

intellij idea搭建spring原始碼閱讀環境

這兩天心血來潮,想去研究一下spring原始碼,一直聽說spring原始碼是開源世界裡最優秀的原始碼之一,出自很多大師的手筆。哈哈,話不多說,要閱讀原始碼第一步當然是搭建閱讀除錯環境啦。我 的環境是intellij idea13.1 第一步:安裝git,配置環境變數 第二

Sping學習筆記(一)----Spring原始碼閱讀環境搭建

idea搭建spring原始碼閱讀環境 安裝gradle Github下載Spring原始碼 新建學習spring原始碼的專案 idea搭建spring原始碼閱讀環境 安裝gradle 在官網中下載gradle二進位制檔案下載地址 解壓到本地後,配置gradle路徑到環境變數中( 不知道怎麼配

Spring 原始碼閱讀環境搭建

> **前言** > > 本文記錄了 Spring 原始碼環境的搭建方式,以及踩過的那些坑!​當前版本:5.3.2-SNAPSHOT。 ### 環境準備 1. Git 2. JDK 1. master 分支需要 JDK 11 2. 5.2.x 分支, JDK8 即可 3. Gradle 6.5

Hadoop原始碼閱讀環境搭建(IDEA) Hadoop原始碼編譯環境搭建 IDEA配置maven中央庫

拿到一份Hadoop原始碼之後,經常關注的兩件事情就是 1、怎麼閱讀?涉及IDEA和Eclipse工程搭建。IDEA搭建,選擇原始碼,逐步匯入即可;Eclipse可以選擇後臺生成工程,也可以選擇IDE匯入。二者工程也可以互相匯入\到處。 2、怎麼構建?利用maven,生成安裝包。 二者均需配置maven

Kafka原始碼閱讀環境搭建

閒來無事,準備研究一下kafka,分5步走, 1,搭建kafka程式碼閱讀環境 2,搭建kafka執行環境,並測試 3,分析kafka啟動部署原理 4,分析kafka工作機制 5,對關鍵部分進行分析 馬上開幹。。。。 1,jdk下載安裝       下載地址:連結:http

kafka原始碼閱讀環境搭建(gradle構建工具、idea)

1.安裝gradle工具,下載地址:https://gradle.org/next-steps/?version=4.7&format=all2.配置環境變數,GRADLE_HOME,path,注意:要在系統變數中配置3.cmd進入dos視窗,gradle -v檢視版

go-ethereum 原始碼閱讀環境搭建

1. 安裝go執行環境https://dl.google.com/go/go1.10.2.windows-amd64.msi  2. 安裝git工具3. 安裝gcc(go編譯geth需要使用)https://jaist.dl.sourceforge.net/project/t

基於idea搭建Hadoop原始碼閱讀環境

Hadoop原始碼是這麼做,其他原始碼環境也類似。 1、到官網下載Hadoop原始碼包,例如hadoop-2.6.5-src.tar.gz. https://www-eu.apache.org/dist/hadoop/common/hadoop-2.6.5/ 2、將下載的原始碼包解壓到某

Spring1:Spring簡介、環境搭建原始碼下載及匯入MyEclipse

框架學習前言 這個模組是面向Spring的,Spring的學習我是這麼想的: 1、簡單介紹Spring,主要是從網上借鑑一些重點 2、儘量說明清楚Spring的使用方法以及細節點 3、儘量以自己的理解講清楚Spring中的一些原始碼 Spring是什麼 Spr

MacBook搭建Tomcat8原始碼閱讀環境 Idea+Maven

MacBook搭建Tomcat8原始碼閱讀環境 準備工作 原始碼目錄配置 1、新建catalina-home目錄,把xxx-src目錄裡的conf等目錄複製到當前目錄,沒有的目錄自己新建空目錄。 2、新建pom.xml並配置 <?xml version=

基於遠端除錯閱讀Nomad原始碼_環境搭建

Nomad原始碼閱讀的遠端除錯環境搭建 簡要記錄遠端除錯環境搭建,方便除錯,閱讀Nomad原始碼。 環境 Remote VMWare 14 - 虛擬機器 Ubuntu 18.04 虛擬機器名local-dev2,IP地址192.168.2

spark2.1原始碼分析1:Win10下IDEA原始碼閱讀環境搭建

環境:win10、IDEA2016.3、maven3.3.9、git、scala 2.11.8、java1.8.0_101、sbt0.13.12 下載: #git bash中執行: git clone https://github.com/apache/

JDK1.8原始碼分析03之idea搭建原始碼閱讀環境

序言:上一節說了閱讀原始碼的順序,有了一個大體的方向,咱們就知道該如何下手。接下來,就要搭建一個方便閱讀原始碼及debug的環境。有助於跟蹤原始碼的呼叫情況。 目前新開發的專案, 大多數都是基於JDK1.8開發,所以我選擇該版本進行原始碼分析。 JDK1.8版本號:jdk1.8.0_151 一. JDK1

SpringData系列一Spring Data的環境搭建

vendor ssi over str spa ger repos getbean date  本節作為主要講解Spring Data的環境搭建 JPA Spring Data :致力於減少數據訪問層(DAO)的開發量。開發者唯一要做的就是聲音持久層的接口,其他都交給

spring boot開發環境搭建

oot osi jdbc 宋體 tid mes true err table 軟件151 朱實友 1.新建一個maven項目 Maven配置文件: <!-- Inherit defaults from Spr

Spring Boot的環境搭建

log main函數 ger warn 3.1 集合 font boot col 軟件152 陳卓 一、概念: 從最根本上來講,Spring Boot就是一些庫的集合,它能夠被任意項目的構建系統所使用。簡便起見,該框架也提供了命令行界面,它可以用來運行和測試Boot