使用IDEA 快速搭建 Spring 的源碼環境

2021-01-11 馬家軍談Java

說明

想深入學習下 spring,了解下 spring 生命周期的一些細節,學習下一些中間件是怎麼整合到 spring 裡面的,如果自己寫的中間件要怎麼整合到 spring 中呢?從而讓其他同學使用的時候非常方便;

看了文檔、書、博客、專欄之後想讀讀源碼,順便讀源碼的時候做一點注釋,或者修改點代碼啥的,所以需要搭建一個環境;

說實話,很多人估計想搭建個 spring 的源碼環境,但是 spring 的這個源碼環境還是稍微有點複雜的,機緣巧合,之前有朋友(@上傑)研究了一個星期,並且最後把環境搞好了,還順便給我把環境也搞了下,大概幾分鐘操作就行,其他就讓電腦在那邊下載就行了;

之前也有好幾個朋友問我,他也想搭建個 spring 環境,今天就抽空整理下,希望對你有幫助;

效果

最後環境搭建成功效果如下:

可以自己調試源碼,修改代碼,添加相關注釋了;

ps:如果你想搭建 spring-boot 的源碼環境,比 spring 環境簡單,clone 源碼之後,啥不用操作等編譯即可,效果如下:

準備 spring 源碼

spring GitHub 地址:https://github.com/spring-projects/spring-framework.git

直接 clone 也可以,你也可以 fork 到自己倉庫之後再 clone ;

spring 給出的步驟

第三步先注意了,需要給你的 idea 調整下 jvm 參數;其他的按照做可能還有點問題,我來把之前朋友研究一周並且可行的操作步驟列下;

環境搭建步驟

提前編譯操作(通過 spring 給出的 一步驟可以發現)

需要注釋掉 gradle/docs.gradle 一段內容

aspectJ 特別設置下,在 spring 文檔中 建議排除掉,但是有時候我們需要使用,所以這裡排除

編譯(此過程時間較長,我電腦編譯了 一個多小時……)

自己建立一個模塊

開始調試、添加注釋等表示環境成功了;

自己源碼添加相關注釋;

總結

還好有朋友之前研究過,這樣我們不必在環境搭建上浪費太多時間,環境搭建好了之後,就可以不斷的調試查看源碼執行過程了,本文也主要是分享下這個 spring 源碼環境的搭建過程,如果你之前搭建環境沒有成功,希望這次對你有幫助;

相關焦點

  • Spring源碼解析之源碼的下載編譯
    老粉應該知道了,筆者最近剛上架技術生涯的第一本書《Java源碼模擬面試解析指南 》。於是趁著年輕時還有時間修福報,準備再做一個 Spring源碼面試指南。相比於之前是直接閱讀引入jar包的方式來研讀 JDK 源碼,由於框架源碼的複雜性及強可插拔性,一般將源碼編譯到本地,由此便可以邊研讀源碼邊加自由地注釋,方便調試程序等。首先進入 spring 官方倉庫,fork 一份倉庫到自己帳號下,方便自己提交。
  • spring框架之註解的使用
    學習內容安排如下:Spring註解的使用。JavaWeb項目的搭建。Spring的Web集成。如果是註解+XML組合使用,可以只開啟①。2註解的使用①@Component註解相當於將對象存放到spring容器中。
  • 使用IntelliJ IDEA創建Spring Boot項目
    在上一篇使用Spring Initializer創建Spring Boot項目 文章中,介紹了使用Spring Initializr創建Spring Boot項目,在本篇文章中,將一步一步介紹使用IntelliJ IDEA創建Spring Boot項目。
  • Spring Boot 快速入門教程(附詳細圖文)
    設計目的:用來簡化新 Spring 應用的初始搭建以及開發過程。從最根本上來講,Spring Boot 就是一些庫的集合,它能夠被任意項目的構建系統所使用。它使用 「習慣優於配置」 (項目中存在大量的配置,此外還內置一個習慣性的配置)的理念讓你的項目快速運行起來。
  • 基於springboot2+mybatis+layui在線心理諮詢管理系統源碼分享
    基於springboot2+mybatis+layui在線心理諮詢管理系統源碼分享spring boot2開發的在線心理諮詢管理系統運行環境>jdk8+mysql5.7+IntelliJ IDEA+maven項目技術spring boot2+mybatis+thymeleaf+layui項目截圖如果您需要獲取到這個項目的源碼進行學習的話~ 可以按照獲取方式
  • 從零搭建 Spring Cloud 服務(超詳細)
    本文轉載自【微信公眾號:java進階架構師,ID:java_jiagoushi】經微信公眾號授權轉載,如需轉載與原文作者聯繫這裡會介紹很多基礎知識,直接想開始搭建微服務的可以看第二章,微服務的搭建。直接看第二章不會有什麼影響,可以先學會開車再學習車的構造的,看個人習慣來。
  • 乾貨|新手也能看懂的源碼閱讀技巧
    讀spring源碼起於工作中遇到了一個問題(spring jdbcTemplate事務,各種詭異,包你醍醐灌頂!),排查一段時間最終是解決了,但過程讓我非常難受,各種上網查資料、各種嘗試,感覺就像大海撈針一樣,遙遙無期。
  • 已有直播源碼,如何搭建直播平臺?
    如何搭建一套直播系統?CDN伺服器節點分布的廣泛性會直接影響視頻數據流的送達時間,距離用戶播放端越近的節點,視頻傳輸速度越短,才能實現視頻的快速播放。三方服務商三方服務不僅可以有效節省開發費用和時間,還能方便用戶的使用。用戶不再需要簡訊驗證的登錄方式,只需要將三方信息授權直播軟體即可登錄,縮短了登錄的時間,保證了用戶的留存率。
  • 全套直播源碼,視頻直播源碼搭建,你的需求都在這裡了
    說到如何搭建視頻直播系統,就要先講明白視頻直播的過程是什麼樣的,直播的流程可以分為採集、前處理、壓縮編碼、推流、拉流、解碼、渲染播放這幾個環節。 為了成功搭建網絡視頻直播系統,解決上述的困難,你需要一批技術人員,這批人員包括而不限於這五組:ios開發組、Android開發組、產品組(產品經理、UI)、後端開發組、測試組人員。接下來就等著技術人員開發這套系統啦,根據系統複雜度不同,用時大約在9個月到一年左右。
  • 用SpringBoot搭建SSM項目環境,真簡便
    SpringBoot整合SSM框架,搭建項目環境。其中mybatis有一個插件叫通用mapper,單表查詢時使用起來非常方便。本來我是打算做個簡單的說明就好了的,結果越寫越多,就獨立成一篇文章了,也就是今天的另外一篇。
  • 基礎篇:Spring Boot入門體驗(圖文教程)
    設計目的:用來簡化新 Spring 應用的初始搭建以及開發過程。從最根本上來講,Spring Boot 就是一些庫的集合,它能夠被任意項目的構建系統所使用。它使用 「習慣優於配置」 (項目中存在大量的配置,此外還內置一個習慣性的配置)的理念讓你的項目快速運行起來。
  • Java中最強大的框架spring
    如果是以前,需要創建一個xml文件,再去spring官網copy配置文件模板。這是得益於idea開發工具的便利,同時也從側面說明了spring的重要性。mybatis框架中配置文件模板不就需要我們自己去官網copy麼?
  • 自製Spring大神 Josh Long 同款命令行工具,值得擁有
    每次都是從0開始,在 start.spring.io 上選擇相應要使用的依賴模塊之後,在本地IDEA 中打開開始一步步完善功能。演講的風格、Live Code 中技術細節的推進,中間各種細節展示,內容相當的贊,受益匪淺。比如在演示「Bootiful Test」的時候,先從我們熟悉的最原始的 Spring 單測寫起,中間各種 Mock,空指針問題處理,到最後的簡潔。
  • 搭建直播系統,在線直播系統網站源碼身份大揭秘
    在線直播系統網站源碼一、在線直播系統網站源碼是什麼舉個例子,建造房屋需要圖紙、做衣服需要布,源碼就是開發工程師需要用到的計算機語言在直播軟體開發過程中用到的是開源的在線直播系統網站源碼,是指利用開源語言及工具編輯的直播系統源碼,開源即免費的,也可以支持開發人員進行二次開發。目前市面上一般是商業開源的在線直播系統網站源碼,也就是說需要向購買源碼的運營方開放原始碼,並允許運營方在源碼上根據自己的需求進行二次開發、軟體運維等活動。
  • 開發屬於自己的第一款IDEA插件!
    要是這個操作是你們的編碼環境特有的,那就只能自己寫工具了。所以這裡來學學如何編寫IDEA插件,讓自己的編程環境更加強大,更好的進行裝逼。開發環境開發IDEA插件有以下這些依賴:IntelliJ IDEA Community EditionIntelliJ IDEA Community Edition 源碼
  • 百度甩出SpringSecurity筆記,源碼實戰齊下
    由於Spring Security是Spring生態系統中的一員,它伴隨著整個Spring生態系統不斷修正、升級,所以使用Spring Security 能最大程度減少企業系統安全控制編寫大量重複代碼的工作。但據有關數據表示,現在大多數開發人員對於Spring Security僅僅停留在會用的階段,對於其核心原理卻不知其所以然。
  • 【SpringBoot DB 系列】Jooq 之常用函數使用姿勢
    【SpringBoot DB 系列】Jooq 之常用函數使用姿勢 在我們的實際業務開發中,某些場景下會藉助一些資料庫支持的函數來做一些簡單的操作,如針對浮點數的取整(, ),字符串的長度獲取()等,本文將介紹一下 jooq 中一些常見的函數使用姿勢 I.
  • 分布式調度系統XXL-JOB安裝和簡單使用
    導入到 idea 按照Spring Boot 應用來啟動即可。xxl-job 是只提供了的源碼文件,如果要運行,需要自己先將 java 源碼 通過 maven 打包構建成運行包,然後才能運行。所以接下來我來詳細講述一下如何在linux 下安裝啟動 xxl-job,這裡使用的 linux 版本為:Ubuntu 16.04。 其他版本也類似。
  • Spring IoC之概覽
    了解Spring兩大核心技術IoC和AOP,有助於我們分析、快速定位問題、解決bug以及對spring進行定製化開發。1. Spring概覽Spring是一個開源的輕量級的鬆耦合的企業級JAVA應用程式開發框架。由Rod Johnson設計,首次發布於2003年。
  • Spring全家桶、Dubbo、分布式、消息隊列後端必備全套開源項目
    在帶你快速學會 SpringMVC API 接口的編寫的同時,我還想告訴你還有全局返回、全局異常、攔截器、跨域處理等等功能。在帶你快速學會 MQ 消息的發送與消費的同時,我還想告訴你 MQ 還有集群消費、廣播消費、順序消息、定時消息、事務消息、消費重試等等特性。