關于Spring源碼調試蔓榄、注釋

一、關鍵詞

Spring源碼調試:即在debug調試中查看Spring源碼或者自己在源碼中添加一些可辨識的代碼默刚,方便調試代碼甥郑。
Spring源碼注釋:在Spring源碼中添加一些注釋,方便理解代碼含義及思路

效果展示

二荤西、問題

利用IDEA工具可以很輕易的實現(xiàn)在debug調試時查看源碼澜搅。
如圖:我需要對org.springframework.security:spring-security-web:5.2.2.RELEASE包下的FilterChainProxy類進行調試。



調試界面

這樣查看源碼已經(jīng)完成
接下來對源碼添加可辨識代碼+注釋



很遺憾并沒有達成預想的目的邪锌。
那么如何解決該問題呢勉躺?

三、思路

問題:上述已經(jīng)完成了源碼的編輯觅丰,但是程序卻沒有走編輯的源碼饵溅。
原因:源碼與其相應編譯文件并不對應。源碼實際上已經(jīng)發(fā)生了改變妇萄,但是編譯文件還是最初的蜕企。所以就會產(chǎn)生當前的問題。

?解決思路1

?下載源碼冠句,然后導入項目中轻掩,通過項目來對源碼進行編譯。使源碼與編譯文件相對應轩端。

?1.1下載源碼放典,可以從本地maven倉庫中獲取(前提是已經(jīng)通過maven下載過源碼)



?新的問題產(chǎn)生了:由于相關的依賴太繁雜,導致無法通過自身項目完成源碼的編譯基茵。

?解決思路2

?既然思路1是由于相關依賴繁雜奋构,那么就嘗試去避免自己導入相關依賴。即下載完整源碼拱层。例如:我分析的是SpringSecurity源碼弥臼,那么我只要下載SpringSecurity的完整源碼,便不需要考慮相關依賴了根灯。
下載地址:Spring項目


?在github上下載源碼径缅。Github上源碼下載比較慢,暫時沒有找到其他資源庫下載烙肺。
?源碼下載后發(fā)現(xiàn)Spring是通過Gradle管理倉庫的纳猪。所以需要安裝與配置Gradle。具體安裝配置見Gradle官方文檔
?思路通了桃笙,這樣就可以具體實施了氏堤。

四、解決方案

?1. 安裝配置Gradle搏明。似乎不同版本的Gradle編譯Spring源碼時會出現(xiàn)一些問題鼠锈。具體還沒研究闪檬。我使用的是Gradle 5.6.4 親測可用。

?2. 導入Spring源碼項目购笆。這邊就不贅述了粗悯。

設置自己的Gradle路徑

?3. build源碼

?4. 對需要的源碼進行編譯

?5. 打開自己的項目引入源碼和編譯文件


?這樣就完成對源碼和編譯文件的配置了

?6. 接下來進行測試

?6.1 對源碼添加可辨識代碼+注釋
?6.2 這樣就看到源碼項目中的文件也相應修改。我們需要對源碼進行重新編譯同欠,才能使源碼與編譯文件相對應样傍。


?可以通過阿里庫為build.gradle提升下載速度

// 阿里庫
repositories {
        maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
        maven { url 'https://maven.aliyun.com/repository/google' }
        maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
        maven { url 'https://maven.aliyun.com/repository/jcenter'}
        maven { url 'https://repo.spring.io/plugins-snapshot' }
        maven { url 'https://plugins.gradle.org/m2/' }
    }
編譯成功
?6.3 成功后返回自己的項目,進行測試
調試成功

五行您、總結

?1.思路

?運行的編譯文件與源文件相對應

?2.注意

?每次修改完源碼铭乾,一定記得重新編譯剪廉,這樣才可以使源碼與編譯文件相對應娃循。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市斗蒋,隨后出現(xiàn)的幾起案子捌斧,更是在濱河造成了極大的恐慌,老刑警劉巖泉沾,帶你破解...
    沈念sama閱讀 216,470評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件捞蚂,死亡現(xiàn)場離奇詭異,居然都是意外死亡跷究,警方通過查閱死者的電腦和手機姓迅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來俊马,“玉大人丁存,你說我怎么就攤上這事〔裎遥” “怎么了解寝?”我有些...
    開封第一講書人閱讀 162,577評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長艘儒。 經(jīng)常有香客問我聋伦,道長,這世上最難降的妖魔是什么界睁? 我笑而不...
    開封第一講書人閱讀 58,176評論 1 292
  • 正文 為了忘掉前任觉增,我火速辦了婚禮,結果婚禮上翻斟,老公的妹妹穿的比我還像新娘逾礁。我一直安慰自己,他們只是感情好杨赤,可當我...
    茶點故事閱讀 67,189評論 6 388
  • 文/花漫 我一把揭開白布敞斋。 她就那樣靜靜地躺著截汪,像睡著了一般。 火紅的嫁衣襯著肌膚如雪植捎。 梳的紋絲不亂的頭發(fā)上衙解,一...
    開封第一講書人閱讀 51,155評論 1 299
  • 那天,我揣著相機與錄音焰枢,去河邊找鬼蚓峦。 笑死,一個胖子當著我的面吹牛济锄,可吹牛的內容都是我干的暑椰。 我是一名探鬼主播,決...
    沈念sama閱讀 40,041評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼荐绝,長吁一口氣:“原來是場噩夢啊……” “哼一汽!你這毒婦竟也來了?” 一聲冷哼從身側響起低滩,我...
    開封第一講書人閱讀 38,903評論 0 274
  • 序言:老撾萬榮一對情侶失蹤召夹,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后恕沫,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體监憎,經(jīng)...
    沈念sama閱讀 45,319評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,539評論 2 332
  • 正文 我和宋清朗相戀三年婶溯,在試婚紗的時候發(fā)現(xiàn)自己被綠了鲸阔。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,703評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡迄委,死狀恐怖褐筛,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情跑筝,我是刑警寧澤死讹,帶...
    沈念sama閱讀 35,417評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站曲梗,受9級特大地震影響赞警,放射性物質發(fā)生泄漏。R本人自食惡果不足惜虏两,卻給世界環(huán)境...
    茶點故事閱讀 41,013評論 3 325
  • 文/蒙蒙 一愧旦、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧定罢,春花似錦笤虫、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽酬凳。三九已至,卻和暖如春遭庶,著一層夾襖步出監(jiān)牢的瞬間宁仔,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評論 1 269
  • 我被黑心中介騙來泰國打工峦睡, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留翎苫,地道東北人。 一個月前我還...
    沈念sama閱讀 47,711評論 2 368
  • 正文 我出身青樓榨了,卻偏偏與公主長得像煎谍,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子龙屉,可洞房花燭夜當晚...
    茶點故事閱讀 44,601評論 2 353

推薦閱讀更多精彩內容