精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Spring源碼學習之IDEA搭建Spring源碼Debug環境

開發 前端
學習開源框架的源碼時,搭建一個可以方便地進行調試的環境是非常重要的,不明白的地方也可以修改一下源碼的東西!看了好多文章,都是比較老的,現在跟著搭建是有問題的,踩了很多坑,最終完成搭建,整理一下思路還是比較清晰的,讓我們一起來試試吧!

一、前言

大家肯定都debug過spring的源碼,看看bean的創建過程,有個缺點不能自己隨意的添加注釋。

學習開源框架的源碼時,搭建一個可以方便地進行調試的環境是非常重要的,不明白的地方也可以修改一下源碼的東西!

看了好多文章,都是比較老的,現在跟著搭建是有問題的,踩了很多坑,最終完成搭建,整理一下思路還是比較清晰的,讓我們一起來試試吧!

二、下載導入Idea

本次小編使用的Idea版本為2021.3,不太建議使用低版本的。

1、下載源碼

可以通過github或者gitee進行下載,也可以直接clone,文件比較大,這里建議直接下載好在Idea中打開即可!

由于Spring6需要JDK17,短時間也不會使用到,我們還是以Spring5的源碼來學習哈,本地下載的Spring版本為:5.3.X

Spring5.3.X下載地址:https://github.com/spring-projects/spring-framework/tree/5.3.x

解壓完成:

2、導入Idea

因為Spring官方已經把Gradle作為構建依賴的工具了,網上有好多都要下載Gradle進行配置的,其實Idea是會幫我們下載并應用的,我們只需要把源碼導入靜靜的等待Idea表演即可!

這時我們把項目導入到Idea中:

這里我們選中Gradle。

點擊相信項目:

小編不是第一次加載,所以很快,第一次的時候已經下載過Gradle了,專門導入一個新的讓大家看一下:

稍等三五分組就構建成功了!

我們來說一下怎么知道下載那個版本的Gradle呢?

「Spring5.3.X是需要gradle-7.5.1-bin.zip」

如果想下載Gradle源碼的可以去下載你想要的版本,這種帶all的才是有源碼的哈!

Gradle下載地址:https://services.gradle.org/distributions/

三、項目完善

現在已經構建完成了,我們現在需要新建一個模塊,去使用我們剛剛構建的spring源碼即可!

1、新建Module

我們新建一個Gradle模塊:

指定父模塊和名稱:

我們可以查看一下目錄下的settings.gradle文件是否新增成功,我們看到include 'myspring',說明我們已經新增模塊成功!

2、新模塊導入依賴

這里是個大坑,坑了我一天,所有的教程都是使用compile來導入依賴的,但是之前使用的Gradle版本都是7.0之前的,之前肯定沒有問題,現在我們使用的是7.5.1。compile命令是被棄用的,不要問我咋知道的,我問的chatGPT,知道他不靠譜但是沒有辦法只能試一下,果然好用!!

「compile關鍵字用于導入依賴項的語法在Gradle 7.0及更早版本中是有效的。但是,從Gradle 7.0開始,官方推薦使用implementation代替compile」。

「自從Gradle 7.0起,compile被棄用,并建議使用implementation、api、compileOnly等配置選項代替,以提供更清晰的依賴管理和構建性能優化。」。

我們添加一些主要的依賴,為了少些getset方法,我們在添加一下Lombok!

implementation(project(":spring-context"))
implementation(project(":spring-beans"))
implementation(project(":spring-core"))
implementation(project(":spring-aop"))
compileOnly 'org.projectlombok:lombok:1.18.20'
annotationProcessor 'org.projectlombok:lombok:1.18.20'

記得刷新依賴!

3、spring.xml文件配置

<?xml versinotallow="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
        https://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="test" class="com.test.bean.Test">
  <property name="id" value="100"></property>
  <property name="name" value="Tom"></property>
    </bean>
</beans>

4、測試Bean

public class Test {

 private Long id;

 private String name;

 public Long getId() {
  return id;
 }

 public void setId(Long id) {
  this.id = id;
 }

 public String getName() {
  return name;
 }

 public void setName(String name) {
  this.name = name;
 }

 @Override
 public String toString() {
  return "Test{" +
    "id=" + id +
    ", name='" + name + '\'' +
    '}';
 }
}

5、測試類

public class SpringMain {

 public static void main(String[] args) {
  ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");
  Test test = context.getBean("test", Test.class);
  System.out.println(test);
 }
}

我們看到正常輸出Bean!

如果使用中文就會亂碼,我們改一下字符集還是不行,加上Gradle字符集還是不行!有知道的大佬歡迎分享一下哈~~

打了斷點,spring內部是正確顯示的:

獲取到的也是正確的,就是輸出的時候亂碼!

這個對我們調試源碼沒有什么影響的!

6、源碼跟進

我們按住Ctrl進入源碼:

我們可以看到已經是我們自己下載的源碼了,這樣就可以本地debug學習了哈!

大家可以好好學習源碼了哈!

我們看到在控制臺輸入一些報錯信息,其實就是git的 問題:

zip 發行版旨在共享我們的源代碼,但不一定用于構建它。構建的這一部分依賴于構建管道中存在的 git 文件。

解決方案就是clone項目,不要使用下載的方式,不過這個對我們調試代碼沒有任何影響哈!

Github官方回復地址:

org.gradle.process.internal.ExecException: Process 'command 'git'' finished with non-zero exit value 128
 at org.gradle.process.internal.DefaultExecHandle$ExecResultImpl.assertNormalExitValue(DefaultExecHandle.java:415)
 at org.gradle.process.internal.DefaultExecAction.execute(DefaultExecAction.java:38)
 at org.gradle.process.internal.DefaultExecActionFactory.exec(DefaultExecActionFactory.java:202)
 at io.spring.ge.conventions.gradle.WorkingDirectoryProcessOperations.exec(WorkingDirectoryProcessOperations.java:45)
 at io.spring.ge.conventions.gradle.ProcessOperationsProcessRunner.run(ProcessOperationsProcessRunner.java:40)
 at io.spring.ge.conventions.gradle.BuildScanConventions.run(BuildScanConventions.java:195)
 at io.spring.ge.conventions.gradle.BuildScanConventions.addGitMetadata(BuildScanConventions.java:139)
 at com.gradle.enterprise.gradleplugin.internal.extension.a$4.run(SourceFile:172)
 at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
 at java.util.concurrent.FutureTask.run(FutureTask.java:266)
 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
 at java.lang.Thread.run(Thread.java:745)

四、總結

通過搭建Spring源碼Debug環境,我們能夠更深入地了解Spring框架的運行機制,并通過實際調試經驗加深對其內部工作原理的理解。這種深入學習可以幫助我們更好地應用和開發Spring框架,同時也提升了我們解決問題的能力。

我們看這種實時性的博客教程還是要看最新的,要不可能會有一些不適合新版的!

希望這篇博客對你有所幫助,祝你在學習Spring源碼過程中取得成功!

責任編輯:姜華 來源: 小王博客基地
相關推薦

2022-12-07 08:02:43

Spring流程IOC

2021-07-09 07:52:34

SpringContextEventListen

2025-05-27 08:05:00

Spring開發服務調用

2019-09-09 06:30:06

Springboot程序員開發

2022-12-05 08:41:39

Redis調試環境源碼

2023-01-10 07:52:15

2020-10-14 06:23:54

SpringBean實例化

2025-05-26 08:05:00

Nacos源碼開發

2012-02-14 14:05:59

JavaSpring

2024-11-13 19:03:14

2017-12-22 10:51:04

Hadoop編譯環境

2017-06-07 14:58:39

Redis源碼學習Redis事務

2021-04-28 06:26:11

Spring Secu功能實現源碼分析

2021-06-07 14:06:19

Spring SecuCSRF防御

2022-02-07 15:02:42

SpringIDEA版本

2015-10-08 14:03:01

TCP網絡協議

2024-10-14 13:30:20

2015-03-31 18:26:43

陌陌社交

2011-08-23 13:56:12

MySQLConnection

2016-09-20 10:15:49

LaravelPHPContainer
點贊
收藏

51CTO技術棧公眾號

国产精品成人一区二区| 欧美一区二区精美| 亚洲精品国产一区| www日本在线| 三级一区在线视频先锋| 久久精品中文字幕| mm131美女视频| 亚洲一区网址| 欧美亚男人的天堂| 人妻少妇精品久久| 免费在线视频欧美| 91麻豆成人久久精品二区三区| 国产精品视频专区| 一级片免费网址| 久久久久久影院| 日韩激情在线视频| 超碰在线超碰在线| 91精品国产66| 欧美日韩一区二区精品| 日韩精品福利片午夜免费观看| 国产在线一二三| 成人小视频免费在线观看| 国产精品视频导航| 男人天堂2024| 亚洲激情综合| 九九热精品在线| 影音先锋男人资源在线观看| 天海翼精品一区二区三区| 日韩午夜小视频| 亚洲 激情 在线| 日本综合字幕| 午夜精品123| 国产情侣第一页| 黄色成人影院| 国产精品毛片高清在线完整版| 蜜桃av噜噜一区二区三| 亚州视频一区二区三区| 成人免费黄色在线| 91福利入口| 国产精品久久久午夜夜伦鲁鲁| 蜜臀av在线播放一区二区三区| 77777亚洲午夜久久多人| 久久亚洲成人av| 欧美欧美全黄| 欧美日本啪啪无遮挡网站| 国产传媒免费在线观看| 午夜影院欧美| 精品国产一区二区三区久久久| 色www亚洲国产阿娇yao| 成人激情在线| 在线视频日韩精品| 成年人视频软件| 天天av综合| 久久久精品视频成人| 亚洲人做受高潮| 亚洲国产精品久久久天堂| 久久久国产精品视频| sm捆绑调教视频| 亚洲影视一区二区三区| 久久视频中文字幕| 青青草免费av| 亚洲福利国产| 91精品国产高清久久久久久| 日韩成人在线免费视频| 亚洲欧美视频| 国产成人综合av| 中文字幕精品一区二| 精品中文字幕一区二区| 91综合免费在线| 亚洲免费国产视频| 91色porny在线视频| 欧美日韩大片一区二区三区| 国产毛片av在线| 国产精品久久久久久久久快鸭| 一区二区三区欧美在线| 91黄色在线| 欧美性69xxxx肥| 国产高清视频网站| 精品国模一区二区三区欧美| 日韩一区二区三区精品视频| 在线看黄色的网站| 国产日韩欧美一区二区三区| 久久精品视频在线| 日韩免费观看一区二区| 日韩av成人高清| aa成人免费视频| 国产视频网站在线| 亚洲精品视频免费看| 国产成人在线免费看| 精品久久久网| 亚洲国产天堂久久综合网| 成人性生交大免费看| 婷婷激情图片久久| 91高清在线免费观看| 91丨九色丨蝌蚪丨对白| jvid福利写真一区二区三区| 四虎影院一区二区三区 | 国产日韩欧美中文字幕| 成人av综合在线| 亚洲欧美日本国产有色| 爱啪啪综合导航| 欧美日韩电影一区| 玖玖爱在线精品视频| 99久精品视频在线观看视频| 91tv亚洲精品香蕉国产一区7ujn| 亚洲无码精品国产| 99国产欧美另类久久久精品| 国产四区在线观看| 台湾佬成人网| 亚洲精品国偷自产在线99热| 国产又色又爽又高潮免费| 制服诱惑一区二区| av蓝导航精品导航| 老司机午夜在线视频| 色综合色狠狠综合色| 国产清纯白嫩初高中在线观看性色| 国产不卡av一区二区| 久久久久久尹人网香蕉| 国产乱子伦精品无码码专区| 国产日韩欧美高清在线| 少妇无码av无码专区在线观看| 91九色成人| 中文字幕av一区二区| 精品免费囯产一区二区三区| 大白屁股一区二区视频| 永久免费网站视频在线观看| 久久天天久久| 国产一区二区三区在线观看视频| 日韩成人在线免费视频| 成人性生交大片免费看中文| 久久免费一级片| 91丨精品丨国产| 中文字幕综合一区| 中文字幕在线观看1| 久久久www免费人成精品| 免费观看日韩毛片| 欧美网色网址| 7777免费精品视频| 熟妇高潮一区二区三区| 亚洲国产一区二区视频| 丰满人妻一区二区三区大胸 | av中文字幕在线免费观看| 国产精品乱码久久久久久| 校园春色 亚洲色图| 日本不卡免费一区| 国产免费观看久久黄| 亚洲欧美视频一区二区| 欧美精品少妇一区二区三区| 日韩av毛片在线观看| 激情图区综合网| 午夜探花在线观看| 色悠久久久久综合先锋影音下载| 久久夜色精品国产亚洲aⅴ| 国产露脸91国语对白| 一区二区三区在线免费视频| 无码国产精品久久一区免费| 红桃视频国产一区| 精品视频高清无人区区二区三区| 性欧美xxx69hd高清| 亚洲欧美国产高清va在线播| 免费看一级视频| 国产目拍亚洲精品99久久精品| www.99在线| 天天影视天天精品| 国产精品av一区| 日本无删减在线| 日韩大陆欧美高清视频区| 亚洲婷婷综合网| 中日韩免费视频中文字幕| 天天摸天天舔天天操| 欧美ab在线视频| 久久免费一区| 成人国产精品入口免费视频| 久久成人在线视频| 蜜桃av噜噜一区二区三区麻豆| 亚洲一区av在线| 国产精品亚洲无码| 国产一区二区在线观看免费| 777久久精品一区二区三区无码| 精品亚洲精品| 国产一区深夜福利| 丰乳肥臀在线| 中文字幕亚洲综合久久| 东京干手机福利视频| 色综合久久久久久久久| 久久久久亚洲AV成人无在| 国产成人午夜99999| 四虎永久在线精品无码视频| 久久麻豆精品| 精品一区二区久久久久久久网站| 成人日韩av| 久久全国免费视频| 91xxx在线观看| 亚洲国产天堂久久国产91 | 免费看啪啪网站| 麻豆一区二区麻豆免费观看| 国产精品久久久久久亚洲影视| 污视频网站在线免费| 亚洲四色影视在线观看| 国产成人久久精品77777综合| 欧美性猛交xxxx黑人| www日韩在线| 久久久久国产精品厨房| 91人妻一区二区| 麻豆91精品视频| 国产精品后入内射日本在线观看| 国产精品久久久久久久免费观看 | 亚洲欧美日韩一区二区三区在线观看| 欧美在线一级片| 国产精品亚洲第一| 日韩网址在线观看| 欧美高清日韩| 中文字幕久久综合| 国产精品免费不| 国产在线精品一区二区三区》| 成人久久精品| 国产专区欧美专区| 台湾佬成人网| 97视频在线观看免费高清完整版在线观看| 国产精品二线| 亚洲欧美国产日韩天堂区| 蜜臀久久99精品久久久| 91精品免费观看| 探花国产精品一区二区| 亚洲va国产天堂va久久en| 青青草精品在线视频| 亚洲欧洲一区二区三区| 欧美老女人性生活视频| 久久毛片高清国产| 51调教丨国产调教视频| 成人免费毛片a| 在线中文字日产幕| 国产精品影视天天线| 日韩av片免费观看| 久久精品国产99| 69久久久久久| 青娱乐精品视频| 国产精品乱码久久久久| 久久成人免费| 久久久久久久激情| 国产偷自视频区视频一区二区| 影音欧美亚洲| 91精品国产麻豆国产在线观看| 在线一区亚洲| 99精品国产一区二区三区| 午夜欧美性电影| 日韩激情免费| 手机看片日韩国产| 欧美在线91| av动漫在线播放| 极品裸体白嫩激情啪啪国产精品| 国产主播自拍av| 国产一区二区三区久久久久久久久| 日韩中文字幕在线视频观看| 久久精品毛片| 超碰在线播放91| 国产一区视频导航| 性活交片大全免费看| 99久久777色| 青娱乐国产视频| 亚洲欧洲美洲综合色网| 黑鬼狂亚洲人videos| 亚洲一区二区三区爽爽爽爽爽| 日韩欧美中文字幕一区二区| 日韩欧美在线网址| 国产孕妇孕交大片孕| 精品国产网站在线观看| 日产精品久久久久久久性色| 中文字幕不卡av| 欧美大胆的人体xxxx| 欧美一级成年大片在线观看| 亚洲伦理影院| 7777精品伊久久久大香线蕉语言| 美女视频亚洲色图| 亚洲欧洲精品一区二区| 女生裸体视频一区二区三区| 欧美三级在线观看视频| 男人的j进女人的j一区| 黑森林av导航| 国产午夜精品一区二区| 一区二区三区四区五区| 欧美午夜视频一区二区| 91在线你懂的| 日韩av影片在线观看| 五月天婷婷在线视频| 欧美精品xxx| 99re66热这里只有精品4| 成人h猎奇视频网站| 国产精品对白| 蜜桃精品久久久久久久免费影院| 天天色综合色| 福利视频一区二区三区四区| 日韩电影一区二区三区| 欧美污在线观看| 国产欧美精品区一区二区三区| 国产这里有精品| 一区二区三区丝袜| 中文字幕免费播放| 精品嫩草影院久久| 女女色综合影院| 555www成人网| 国产成人久久精品一区二区三区| 免费看国产精品一二区视频| 91精品国产视频| 天天爽夜夜爽一区二区三区| 国产·精品毛片| 极品蜜桃臀肥臀-x88av| 天天做天天摸天天爽国产一区 | 久久久www成人免费毛片| 国产精品国产三级国产有无不卡 | 乱熟女高潮一区二区在线| 99热这里只有精品8| 国产女同无遮挡互慰高潮91| 9久草视频在线视频精品| 国产精品麻豆一区| 色综合久久久久综合99| 午夜精品久久久久久久爽| 久久精品成人欧美大片古装| 中文字幕在线视频久| av激情久久| 欧美欧美全黄| www.污污视频| 中文字幕制服丝袜一区二区三区| 国产精品视频123| 亚洲国产97在线精品一区| 毛片在线网址| 成人做爰www免费看视频网站| 美女视频亚洲色图| 成品人视频ww入口| 国产麻豆精品theporn| 日本美女bbw| 在线视频国内自拍亚洲视频| 人成网站在线观看| xxx一区二区| 日韩电影网站| 精品国产一区二区三区日日嗨| 欧美日韩水蜜桃| 91视频最新| 人狥杂交一区欧美二区| 亚洲在线免费观看| 国产精品久久久久9999赢消| 久久久久久久久久久福利| 菠萝蜜视频在线观看一区| 2021亚洲天堂| 91精品欧美一区二区三区综合在| 麻豆网站视频在线观看| 国产成人97精品免费看片| 国产精品一区二区中文字幕 | 男人天堂网在线视频| 久久精品成人动漫| 日韩高清一区| 国产日产欧美一区二区| 韩国精品久久久| 久久久久免费看| 精品噜噜噜噜久久久久久久久试看| 日本在线观看高清完整版| 亚洲xxxx做受欧美| 欧美日韩理论| 少妇一级淫片免费放播放| 亚洲国产中文字幕在线视频综合| 少妇人妻精品一区二区三区| 国外成人在线视频| 国内精品偷拍| 91激情视频在线| 中文字幕一区二区不卡| 亚洲AV无码一区二区三区性| 欧美黑人一级爽快片淫片高清| 国内精品视频| 一二三四视频社区在线| 91在线码无精品| 岛国视频一区| 欧美国产精品| 无码人妻精品一区二区三| 色婷婷亚洲一区二区三区| 中文字幕日本在线| 91成人免费观看| 久久先锋资源| 久久爱一区二区| 日韩电影网在线| 亚洲a∨精品一区二区三区导航| 曰韩不卡视频| 国产91丝袜在线观看| 国产一级特黄a高潮片| 亚洲色图狂野欧美| 亚洲男人在线| 成人精品视频一区二区| ㊣最新国产の精品bt伙计久久| 深夜福利视频网站| 国产精品影院在线观看| 亚洲小说欧美另类社区| 成人性生交大免费看| 欧美一区二区人人喊爽| 北岛玲heyzo一区二区| 黄频视频在线观看| 久久综合久久综合亚洲| 91丨九色丨蝌蚪丨对白| 欧洲美女免费图片一区| 欧美国产一级| 久久久老熟女一区二区三区91| 在线免费观看成人短视频|