全网最新最详细最明白教程之Spring源码搭建,没有之一,超详细

相关帖子有很多但是都不是最新的 Gradle,我在使用Gradle最新版编译的时候简直坑死我了,弄了好久。接下来给大家详细说一下这个安装过程,以及相关的软件版本号。

相关软件、依赖的版本号:

  • Gradle gradle-7.2-bin.zip 该版本官网下载地址 或者自行选择版本 所有版本官网地址 注意:如果要是自行选择版本,以下流程未必适用
  • JDK jdk-11.0.12_windows-x64_bin.exe 该版本官网下载地址 注意:如果不使用JDK11,会报依赖错误 java: 程序包jdk.jfr不存在,反正JDK8是会报错,本人解决了很长时间都没有解决,有兴趣的话大家自行尝试。
  • Spring源码版本 5.3.x
  • 软件 ideaIU-2021.1.2.exe

相关软件介绍完毕,开始实操:

Spring阅读源码环境搭建

  1. 先从GithHub拉取项目,源码地址
https://github.com/spring-projects/spring-framework

全网最新最详细最明白教程之Spring源码搭建,没有之一,超详细

如果要是GitHub网络太慢,可以先将代码fork到Gitee上,然后再进行拉取。

首先先登录Gitee,然后点击右上角加号的 Import Repository

全网最新最详细最明白教程之Spring源码搭建,没有之一,超详细

第一次操作,有可能需要Github和Gitee的权限验证,直接验证即可,出现以下界面:

然后按照下图操作

全网最新最详细最明白教程之Spring源码搭建,没有之一,超详细

导入完成后直接去Gitee上拉取代码就行了。这里不在对clone做过多描述,我是使用IDEA进行拉取代码的:

首先先打开gitee的spring源码地址,Copy一下这个地址:如图

全网最新最详细最明白教程之Spring源码搭建,没有之一,超详细

打开IDEA,找到 Git,然后点击 clone

全网最新最详细最明白教程之Spring源码搭建,没有之一,超详细

点击完clone会出现如下界面,填写好复制的源码地址,选好本机存放的源码路径,点击 clone.等待拉去完成。

全网最新最详细最明白教程之Spring源码搭建,没有之一,超详细

clone完代码后,发现不是我们想要的版本,我们需要切换一下。注意有可能显示的版本不全,点击一下 showmore即可,

全网最新最详细最明白教程之Spring源码搭建,没有之一,超详细

然后按图操作:

全网最新最详细最明白教程之Spring源码搭建,没有之一,超详细

切换完成之后,暂时就不用管源码了,先close project 。

接下来安装 Gradle,首先先将软件包解压到你想放的位置。解压完成以后配置 Gradle的环境变量,

打开系统的 高级系统设置,然后修改 环境变量,如图:

全网最新最详细最明白教程之Spring源码搭建,没有之一,超详细

系统变量中增加两个属性分别是

GRADLE_HOME - 这个是你解压Gradle的路径
GRADLE_USER_HOME - 这个是存放Gradle的依赖包的路径

切记切记且其 GRADLE_USER_HOME 的名字不可以改。,不然与默认的配置文件不对应

全网最新最详细最明白教程之Spring源码搭建,没有之一,超详细

配置好之后这边,打开 Command,输入

gradle -v

出现如图所示的结果说明配置成功

全网最新最详细最明白教程之Spring源码搭建,没有之一,超详细

然后打开Spring源码目录,找到gradlew.bat,打开cmd窗口,执行它。

全网最新最详细最明白教程之Spring源码搭建,没有之一,超详细

等待出现如下界面,会出现 build success的提示说明成功,

全网最新最详细最明白教程之Spring源码搭建,没有之一,超详细

这还不算完,找到你spring的源码目录,找到这两个文件 import-into-eclipse.mdimport-into-idea.md,这两个文件一个是针对eclipse,一个是针对IDEA的;本次讲解的是IDEA;打开对应的文件,找到 step如图,执行对应的命令

./gradlew :spring-oxm:compileTestJava

windows下需要去掉 ./

gradlew :spring-oxm:compileTestJava

全网最新最详细最明白教程之Spring源码搭建,没有之一,超详细

然后再到执行的 gradlew.bat命令下的目录执行 gradlew :spring-oxm:compileTestJava该命令,也就是spring源码目录。如图:

全网最新最详细最明白教程之Spring源码搭建,没有之一,超详细

执行完成后,直到出现 BUILD SUCCESSFUL则代表成功,

全网最新最详细最明白教程之Spring源码搭建,没有之一,超详细

进行到这里,就已经离成功不远了。然后使用IDEA重新打开Spring源码项目。

打开方式:File->New->Project from Existing Sources 找到项目中的 build.gradle如图所示:

全网最新最详细最明白教程之Spring源码搭建,没有之一,超详细

全网最新最详细最明白教程之Spring源码搭建,没有之一,超详细

最后idea会自动编译spring源码,编译成功以后,所有的模块都会有个小小的蓝色图标,表示编译成功,至此spring源码导入完成。接下来写一个测试类,测试一下。

点击项目目录 New->Moudle

全网最新最详细最明白教程之Spring源码搭建,没有之一,超详细

选择Gradle JDK11 Java 点击Next: 如图

全网最新最详细最明白教程之Spring源码搭建,没有之一,超详细

配置相关属性,项目名、包名、版本号等如图,点击 Finish

全网最新最详细最明白教程之Spring源码搭建,没有之一,超详细

接下来在新建的项目中的 build.gradle中引入模块 :spring-beans和,如图:

全网最新最详细最明白教程之Spring源码搭建,没有之一,超详细

注意:

这里一定要写 implementation 不要写其他的否侧会失败。版本不同,引入方式也不一样,本次的Gradle是7.2。

然后再main中创建一个测试Bean

如图:

全网最新最详细最明白教程之Spring源码搭建,没有之一,超详细

然后再 resource中床架一个spring的配置文件 ,将刚刚创建的Bean加载到spring容器中

全网最新最详细最明白教程之Spring源码搭建,没有之一,超详细

配置文件的内容


全网最新最详细最明白教程之Spring源码搭建,没有之一,超详细

接下来再test中创建测试类

全网最新最详细最明白教程之Spring源码搭建,没有之一,超详细

测试类的内容如下:

@Test
    public void Test(){
        BeanFactory beanFactory = new XmlBeanFactory(new ClassPathResource("spring-config.xml"));
        MyTestBean myTestBean = (MyTestBean) beanFactory.getBean("myTestBean");
        System.out.println(myTestBean.getName());
    }

全网最新最详细最明白教程之Spring源码搭建,没有之一,超详细

点击运行,出现以下结果代表创建完成了。

全网最新最详细最明白教程之Spring源码搭建,没有之一,超详细

到这里,spring源码就大功告成了。

感兴趣的小伙伴可以微信搜索 码上遇见你获取更多精彩内容。

全网最新最详细最明白教程之Spring源码搭建,没有之一,超详细

Original: https://www.cnblogs.com/java-wang/p/15334615.html
Author: 码上遇见你
Title: 全网最新最详细最明白教程之Spring源码搭建,没有之一,超详细

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/580140/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Mysql 计算地址经纬度距离实时位置

    前言 最近在做项目时候,遇到一个这样子的需求, 点到卡包里面卡券使用使用,需要展示卡券使用附近门店, 思路 数据库地址表设计 通用的区域街道地址表 tz_sys_area 字段名称…

    Java 2023年6月13日
    089
  • 记一次Idea无法打开记录(idea升级)

    记一次Idea无法打开记录 前言,本来今天是打算升级Idea,然后体验一波的,结果升级完之后,发现无法打开idea(双击之后并没有任何打开的反应)。 原因排查,打开idea所在目录…

    Java 2023年6月5日
    060
  • macOS M1 安装npm

    1.安装brew 2.安装node brew install node 3.更新npm npm install npm -g Original: https://www.cnblo…

    Java 2023年6月9日
    072
  • 从服务器上拷贝代码到虚拟机上编译不过

    去掉application/tools/tcon_bin_generator/panel_bootbin_gen.c文件中 if (GNUC >= 4) &&…

    Java 2023年5月30日
    053
  • HTTP协议

    请求报头允许客户端向服务器端传递请求的附加信息以及客户端自身的信息。 Accept Accept请求报头域用于指定客户端接受哪些类型的信息。eg:Accept:image/gif …

    Java 2023年6月7日
    085
  • Spring 4 集成 redis 实现缓存 一

    随着Web项目的复杂程度逐渐增加,可能会涉及诸如高并发、海量数据查询的的业务场景也逐渐增多;若频繁的操作数据库,会触发数据库的I/O瓶颈,因此需要加入缓存,尽量减少直接操作数据库的…

    Java 2023年6月5日
    070
  • JavaSE_关键字 接口 代码块 枚举

    1 Java中的关键字 1.1 static关键字 static特点 : 静态成员被所在类的所有对象共享 随着类的加载而加载 , 优先于对象存在 可以通过对象调用 , 也可以通过类…

    Java 2023年6月9日
    069
  • Java基础随笔2

    ++:自增 –:自减 单独使用的时候,++或者–无论是放在变量的前面还是后面,结果是一样的。 参与操作的时候: 如果++或者–在变量的后面,先拿…

    Java 2023年6月5日
    071
  • 数据库篇:mysql事务原理之MVCC视图+锁

    前言 数据库的事务特性 数据并发读写时遇到的一致性问题 mysql事务的隔离级别 MVCC的实现原理 锁和隔离级别 关注公众号,一起交流,微信搜一搜: 潜行前行 1 数据库的事务特…

    Java 2023年6月5日
    0114
  • 抵达心之自由

    如水涟漪,如树伫立,如草柔韧。 自由来自智慧。 你眼前所见即为真,所不见亦为真。假从何来?假并不存在于事物中,而是存在于标准中。 挣脱了标准的枷锁,就获得了第一层自由; 当深明生命…

    Java 2023年6月9日
    076
  • SpringBoot学习(九)使用JTA的分布式事务、Hazelcast、Quartz调度器和任务执行和调度

    一、使用JTA的分布式事务 通过使用Atomikos或Bitronix嵌入式事务管理器,Spring Boot支持跨多个XA资源的分布式JTA事务。在部署到适当的Java EE应用…

    Java 2023年5月30日
    066
  • 稀疏数组

    基本介绍 当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。 稀疏数组的处理方法是: 1、记录数组一共有几行几列,有多少个不同的值 2、把具有不同值…

    Java 2023年6月6日
    085
  • Swagger学习

    Swagger学习 笔记记录 B站狂神说一小时掌握Swagger技术 https://www.bilibili.com/video/BV1Y441197Lw?p=4&spm…

    Java 2023年6月14日
    087
  • IDEA常用设置及插件

    设置 1.设置打开后不直接进入项目 IDEA默认打开时会直接进入上次打开的目录,有的时候加载很长时间,但这个时候可能我们并不是要打开这个项目,这里有一个设置,在如图的位置,去掉勾选…

    Java 2023年6月5日
    071
  • 第二篇-用Flutter手撸一个抖音国内版,看看有多炫

    go;gutter:true; class Douyin { int statusCode; String statusMsg; List billboardData; Extra…

    Java 2023年6月7日
    060
  • JAVA对象的内存解析

    堆(Heap):此内存区域用来存放对象实例 栈(Stack): 存储局部变量,局部变量存储有数据类型(boolean,byte,int,short,int,float,long,d…

    Java 2023年6月15日
    072
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球