欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Idea 搭建Spring源碼環(huán)境的超詳細(xì)教程

 更新時間:2020年10月13日 11:28:06   作者:Aska小強(qiáng)  
這篇文章主要介紹了Idea 搭建Spring源碼環(huán)境,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

本篇主要講解如何使用Ideal 搭建Spring的源碼環(huán)境,想必大家都會多多少少去看過Spring的部分源碼,一般我們都是直接點進(jìn)某個Spring類 然后Idea上面去下載 ,但是確實比較麻煩,而且不能添加自己對源碼的注釋 理解 ,本篇就來解決這個問題,手把手使用Idea 搭建Spring framework ,并且直接在Spring framework項目中添加我們自己的module 來驗證環(huán)境是否正確。 本過程會比較耗時 而且容易出錯 慢慢來吧。

1. clone spring-framework 項目

1.1 找到github spring-framwwork 項目

先登錄github 找到 spring-framework項目

https://github.com/spring-projects

image-20200924100101919

我選擇的是 5.0.x

image-20200924100152972

如果你覺得你網(wǎng)速可以,那你可以直接從 github clone 下來, 我這里先把項目傳到 gitee

1.2 fork 到gitee 碼云

image-20200924100520958

拉取你要的 分支 git clone -b 分支

image-20200924101002192

2. 查看 import-into-idea.md 文件

在下載的源碼中 有一個文件是 import-into-idea 的 md文件 里面有關(guān)于導(dǎo)入 idea需要的 注意事項,我們來打開它

The following has been tested against IntelliJ IDEA 2016.2.2

## Steps

_Within your locally cloned spring-framework working directory:_

1. Precompile `spring-oxm` with `./gradlew :spring-oxm:compileTestJava`
2. Import into IntelliJ (File -> New -> Project from Existing Sources -> Navigate to directory -> Select build.gradle)
3. When prompted exclude the `spring-aspects` module (or after the import via File-> Project Structure -> Modules)
4. Code away

## Known issues

1. `spring-core` and `spring-oxm` should be pre-compiled due to repackaged dependencies.
See `*RepackJar` tasks in the build and https://youtrack.jetbrains.com/issue/IDEA-160605).
2. `spring-aspects` does not compile due to references to aspect types unknown to
IntelliJ IDEA. See https://youtrack.jetbrains.com/issue/IDEA-64446 for details. In the meantime, the
'spring-aspects' can be excluded from the project to avoid compilation errors.
3. While JUnit tests pass from the command line with Gradle, some may fail when run from
IntelliJ IDEA. Resolving this is a work in progress. If attempting to run all JUnit tests from within
IntelliJ IDEA, you will likely need to set the following VM options to avoid out of memory errors:
 -XX:MaxPermSize=2048m -Xmx2048m -XX:MaxHeapSize=2048m
4. If you invoke "Rebuild Project" in the IDE, you'll have to generate some test
resources of the `spring-oxm` module again (`./gradlew :spring-oxm:compileTestJava`) 


## Tips

In any case, please do not check in your own generated .iml, .ipr, or .iws files.
You'll notice these files are already intentionally in .gitignore. The same policy goes for eclipse metadata.

## FAQ

Q. What about IntelliJ IDEA's own [Gradle support](https://confluence.jetbrains.net/display/IDEADEV/Gradle+integration)?

A. Keep an eye on https://youtrack.jetbrains.com/issue/IDEA-53476

大致意思就是

2.1 在源碼目錄下執(zhí)行

 ./gradlew :spring-oxm:compileTestJava

image-20200908133100199

image-20200908133315577

2.2 再導(dǎo)入導(dǎo) idea 中

會開始下載 Gradle 構(gòu)建工具 等,會根據(jù) gradle-wrapper.properties 中的指定版本下載,最好不要修改它的版本

image-20201012092914514

Idea導(dǎo)入 選擇文件夾

image-20200924103331680

選擇使用Gradle

![image-20200924103346932](/Users/johnny/Library/Application Support/typora-user-images/image-20200924103346932.jpg)

靜靜的等待

image-20200908131416428

image-20200908131504088

2.3 排除 "spring-aspects"

排除了 spring-aspects 項目

打開settings.gradle 把 //include "spring-aspects" 注釋了

image-20201012111805740

2.4 下載完依賴后 (耗時可能要個15-30分鐘)

可以發(fā)現(xiàn) 依賴都加載完成后,idea 就能識別我們導(dǎo)入的 spring項目了,并且圖標(biāo)都變亮了

3.引入自定義模塊放入SpringFramework 項目下

下面就是來驗證 我們的 源碼環(huán)境是否 正常, 需要引入一個自定義的 模塊,并且依賴 core bean 等spring依賴

3.1 新建module

右擊項目 -》 new -》 module 選擇 gradle 項目

3.2 添加 依賴

在新建的module下 打開 build.gradle 引入下面的依賴 spring-beans , spring-context , spring-core , spring-expression

dependencies {
 testCompile group: 'junit', name: 'junit', version: '4.12'

 compile(project(":spring-beans"))
 compile(project(":spring-context"))
 compile(project(":spring-core"))
 compile(project(":spring-expression"))
}

3.3 檢查 module 是否被引入

打開settings.gradle 添加 include 'spring-demo' ,默認(rèn)使用我說的創(chuàng)建module 方式 會自動添加的最好檢查一下

3.4 編寫 測試代碼

3.4.1 定義Person類

package com.johnny.bean;

/**
 * @author johnny
 * @create 2020-09-07 下午11:22
 **/
public class Person {

 private String name;

 private int age;

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

 public String getName() {
 return name;
 }

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

 public int getAge() {
 return age;
 }

 public void setAge(int age) {
 this.age = age;
 }
}

3.4.2 resources 下新建 demo.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 class="com.johnny.bean.Person" id="person">
 <property name="name" value="johnny"/>
 <property name="age" value="10"/>
 </bean>
</beans>

3.4.3 新建main 加載xml 并且從容器中獲取 bean

package com.johnny.bean;

import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * @author johnny
 * @create 2020-09-07 下午11:24
 **/
public class DemoMain {

 public static void main(String[] args) {
 ClassPathXmlApplicationContext classPathXmlApplicationContext = new ClassPathXmlApplicationContext("demo.xml");
 Person person = classPathXmlApplicationContext.getBean(Person.class);
 System.out.println(person);
 }
}

可以看到 能獲取到 容器中的Bean ,表示我們的spring環(huán)境搭建正確

image-20201012110602726

總結(jié)

本篇主要講解 如何使用idea 搭建spring源碼環(huán)境,過程其實很耗時 而且特別容易出錯,總結(jié)就是 1. clone 代碼,2.進(jìn)入源碼目錄執(zhí)行 ./gradlew :spring-oxm:compileTestJava3.導(dǎo)入idea 中 4. 排除 exclude the spring-aspects module 5.自定義module 驗證環(huán)境 , 祝愿大家環(huán)境搭建順利。。。最好開個墻

本文由博客一文多發(fā)平臺 OpenWrite 發(fā)布!

到此這篇關(guān)于Idea 搭建Spring源碼環(huán)境的文章就介紹到這了,更多相關(guān)Idea Spring源碼環(huán)境內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot+Mybatis-Plus實現(xiàn)mysql讀寫分離方案的示例代碼

    SpringBoot+Mybatis-Plus實現(xiàn)mysql讀寫分離方案的示例代碼

    這篇文章主要介紹了SpringBoot+Mybatis-Plus實現(xiàn)mysql讀寫分離方案的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • Java SpringBoot模板引擎之 Thymeleaf入門詳解

    Java SpringBoot模板引擎之 Thymeleaf入門詳解

    jsp有著強(qiáng)大的功能,能查出一些數(shù)據(jù)轉(zhuǎn)發(fā)到JSP頁面以后,我們可以用jsp輕松實現(xiàn)數(shù)據(jù)的顯示及交互等,包括能寫Java代碼。但是,SpringBoot首先是以jar的方式,不是war;其次我們的tomcat是嵌入式的,所以現(xiàn)在默認(rèn)不支持jsp
    2021-10-10
  • java控制Pdf自動打印的小例子

    java控制Pdf自動打印的小例子

    java控制Pdf自動打印的小例子,需要的朋友可以參考一下
    2013-04-04
  • Java Date類的使用案例詳解

    Java Date類的使用案例詳解

    這篇文章主要介紹了Java Date類的使用案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • java中PreparedStatement和Statement詳細(xì)講解

    java中PreparedStatement和Statement詳細(xì)講解

    這篇文章主要介紹了java中PreparedStatement和Statement詳細(xì)講解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • Java超詳細(xì)講解多態(tài)的調(diào)用

    Java超詳細(xì)講解多態(tài)的調(diào)用

    多態(tài)就是指程序中定義的引用變量所指向的具體類型和通過該引用變量發(fā)出的方法調(diào)用在編程時并不確定,而是在程序運(yùn)行期間才確定,即一個引用變量到底會指向哪個類的實例對象,該引用變量發(fā)出的方法調(diào)用到底是哪個類中實現(xiàn)的方法,必須在由程序運(yùn)行期間才能決定
    2022-05-05
  • Java實現(xiàn)四則混合運(yùn)算代碼示例

    Java實現(xiàn)四則混合運(yùn)算代碼示例

    這篇文章主要介紹了Java實現(xiàn)四則混合運(yùn)算代碼示例,文中展示了詳細(xì)代碼,具有一定參考價值,需要的朋友可以了解下。
    2017-10-10
  • Python學(xué)習(xí)之書寫格式及變量命名

    Python學(xué)習(xí)之書寫格式及變量命名

    這篇文章我們給大家總結(jié)了關(guān)于Python書寫格式及變量命名,小編覺得這篇文章寫的還不錯,有興趣的朋友跟著參考學(xué)習(xí)下,希望能夠給你帶來幫助
    2021-10-10
  • SpringBoot接口返回結(jié)果封裝方法實例詳解

    SpringBoot接口返回結(jié)果封裝方法實例詳解

    在實際項目中,一般會把結(jié)果放在一個封裝類中,封裝類中包含http狀態(tài)值,狀態(tài)消息,以及實際的數(shù)據(jù)。這里主要記錄兩種方式,通過實例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2021-09-09
  • 解決spring-data-jpa mysql建表編碼問題

    解決spring-data-jpa mysql建表編碼問題

    這篇文章主要介紹了解決spring-data-jpa mysql建表編碼問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07

最新評論