在Win10下编译Spring4.3.12源码,并导入idea, 进行测试

告别官方包!手把手教你从Gitee源码编译kkFileView 4.4.0(附避坑指南) 本文详细介绍了如何从Gitee源码编译kkFileView 4.4.0,包括环境配置、源码获取、项目结构解析、编译构建全流程以及常见问题解决方案。通过国内镜像加速和IDE优化配置,帮助开发者高效完成源码编译,生成跨平台安装包,满足定制化需求。 阅读详情

作为一名Java开发人员,和Spring打交道的次数可能比陪女朋友还多。况且Spring现在不仅仅是一个框架,同时也是Java行业的标准。面试当中关于Spring的问题也是多不胜数。所以对于Java开发人员学习Spring源码,理解Spring底层变得尤为重要。

本文就针对学习Spring源码的第一步: windows下编译Spring4.3.12源码,导入Idea。

搭建环境

Spring源码使用的是Gradle 进行构建的,所以需要下载 Gradle 以及搭建 java开发环境

Java环境使用的是 JDK1.8
JDK版本.png

Gradle版本5.2.1 Gradle下载
Gradle版本

上面的下载和安装都比较简单, 不在赘述。

下载Spring源码

Spring源码下载
Spring源码.png
下载zip文件到本地后解压。

开始编译

Spring官方给出的步骤

  1. 进入Spring源码目录cd spring-framework-4.3.21.RELEASE
  2. 编译spring-oxm 使用命令 gradlew :spring-oxm:compileTestJava (这一步执行了6分钟)
    构建spring-oxm.png
  3. 执行 gradlew idea -x test 编译整个spring-framework 为idea项目 (-x test是 不进行测试代码的编译, 我在执行这一步时就忘记了, 导致后面test大量出错, 完全跑不起来)

这一步会下载许多的依赖, 执行了快30分钟
构建idea项目.png
如果是eclipse项目 :编译为eclipse项目 , 不过个人建议还是使用idea。会少些折腾。

导入idea

编译完成之后在根目录下会有一个 spring.ipr 文件
spring-ipr-file.png
使用idea打开这个文件就可以将所有 module 导入idea 当中.

文件夹上有个 蓝色的标记 表明已经导入完成。(如图)
导入idea完成.png

这一步我并没有碰到网上说的一些其他的一些毛病. 还算比较顺利

测试

编译完成了, 接下来就是如和使用我们自己编译的spring程序,使我们在debug时直接到代码内部当中。

首先建一个测试的module, 我这里创建了一个maven module (对gradle不是很熟悉)
创建测试module.png
然后在 pom.xml 中添加依赖

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
</properties>
  <dependencies>
    <dependency>
      <groupId>commons-logging</groupId>
      <artifactId>commons-logging</artifactId>
      <version>1.2</version>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

File > Project Structure 添加spring的依赖
添加spring依赖.png

这里+展开后需要选择 Module dependency

这里有可能会出现一个 spring module not exist .... 的错误. 直接将对应的模块移出就好。

这里具体需要依赖什么取决于测试程序, 如果提示有其他的包找不到,添加进来即可 , 可以自行测试一下。

依赖添加完成之后,就可以进行测试了。我们就直接将一个类添加到 ioc 当中,然后在从 ioc 当中取出来。

创建一个Student.java

package top.gn.entity;

import org.springframework.stereotype.Component;

/**
 * 学生类
 */
@Component
public class Student {
    private Integer id;
    //学号
    private String schoolNum;

    private Character sex;

    public Student() {
        this(1,"16234",'男');
    }
    public Student(Integer id, String schoolNum, Character sex) {
        this.id = id;
        this.schoolNum = schoolNum;
        this.sex = sex;
    }
    @Override
    public String toString() {
        return "Student{" +
                "id=" + id +
                ", schoolNum='" + schoolNum + '\'' +
                ", sex=" + sex +
                '}';
    }
}

在 resources --> ApplicationContext.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"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd">

    <context:component-scan base-package="top.gn.entity"/>
</beans>

主程序 App.java

package top.gn;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import top.gn.entity.Student;

/**
 * 测试自己编译的spring
 *
 */
public class App 
{
    public static void main( String[] args )
    {
        ApplicationContext app = new ClassPathXmlApplicationContext("ApplicationContext.xml");
        Student student = app.getBean(Student.class);
        System.out.println(student);
    }
}

我们可以进入 ClassPathXmlApplicationContext.java 当中 在其中加入一条输出语句.
build-success-test.png
执行结果 :
执行结果

这样我们在学习spring源码时就可以 对其中方法 变量, 添加自己的注释。 使用debug时也更加的清晰。

参考文章

等一杯咖啡

from_lazy_boy

DVT Eclipse保姆级入门教程(一) 介绍 waokspace工作区 是Eclipse平台、已安装插件的存储、配置和临时信息的首选项 在工作区可以定义项目,但不需要将源文件导入或者复制到工作区中,可以在项目中指向任何文件夹或者文件; 路径都不要出现中文; 每次启动Eclipse时,都可以创建一个新的工作空间或指定一个现有的工作空间目录; 可以创建许多工作区,每个工作区专用于某种活动。 project项目 首次创建项目时,Eclipse平台会在你指定的目录中创建一个.project项目。 一些插件可能会在项目目录中创建其他信息,例如DVT创 阅读详情

相关推荐

Centos7 XFS(dm-0):Internal error XFS_WANT_CORRUPTED_GOTO

在k8s的道路上我们都是小白,每天启动虚机都会遇到各种各样的问题,这不。部署的k8s虚机启动发现操作系统启动异常,提示如下报错信息。进入/dev/mapper目录下,查询目录下路径信息。可以通过对文件系统进行修复操作,操作如下。重启完成后虚机恢复正常登录。

hedao0515的专栏 4583

用gradle和idea构建spring源码步骤,并编写demo,进而调试源码

1.从github上下载源码,安装gradle 2.进入spring-framework-5.1.6.RELEASE,执行命令 gradlew :spring-oxm:compileTestJava 3.用idea导入项目: 4.选择spring-aspects 5.kotlin插件升级 6.进入E:\springdev\spring-framework-5.1.6....

haocircle0406的博客 745

Matlab实战:从零搭建弹道导弹六自由度仿真模型(附完整代码)

本文详细介绍了如何使用Matlab从零搭建弹道导弹六自由度仿真模型,涵盖仿真环境配置、核心运动方程实现、气动力建模及仿真结果分析。通过完整代码示例,帮助读者掌握弹道导弹六自由度仿真的关键技术,适用于航空航天工程和复杂系统建模领域。

x8y9z0的博客 946

Spring 源码编译(一)

1、下载源码包 Spring 官网 下载 2、修改build.gradle repositories { maven{ url 'https://maven.aliyun.com/nexus/content/groups/public/'} maven{ url 'https://maven.aliyun.com/nexus/content/repositories/jcenter'} mavenCentral() maven { url "https://repo.

qq_36211262的博客 345

【2025年美团春招(算法岗)-3月15日-第三题(300分)- 字符串权值】(题目+思路+Java&C++&Python解析+在线测试)

小美定义一个字符串的权值为:其长度为3的回文子序列数量。例如,“abca"的权值为2,因为包含两个回文子序列"aba"和"aca现在给定一个仅包含小写字母的字符串,小美希望你输出该字符串每个前缀的权值。

m0_73659489的博客 312

土壤数据库辅助工具SPAW计算土壤导水率

首先点击打开根据之前的1比100土壤数据查表得到各个组分含量其中Field Capacity是田间持水量Matric Bulk Density是基质粒密度。

所有专家都曾始于新手 3443

Win10 + IDEA2019.3 搭建Spring5.1.x 源码开发环境

为了在本地学习、调试Spring的源码,有必要自己在本地搭建一个Spring的源码环境。

小月施主的博客 1095

TC3XX - MCAL知识点(十三):IOM EB-tresos配置说明及代码浅析

输入输出监视器(IOM)驱动程序作为比较单元,检查系统外设输出的正确操作,这些输出可以作为监视功能的输入。监控功能需要通过配置IOM硬件来实现。它向SMU生成全局系统事件。IOM驱动程序初始化并控制微控制器的IOM单元。驱动程序还为用户提供初始化和设置IOM内部单元的阈值的服务。它还应该提供重置IOM内核的服务。应该提供该服务来组合单个或多个本地事件,以生成单个全局系统事件。IOM驱动程序严重依赖于初始化和配置。软硬件关系如下图缩写解释LAM逻辑分析模块ECM事件组合模块FPC。

梦想技术家 1799

Idea导入Spring源码

Idea导入Spring源码,下载,安装,导入一步到位!新手都可以导入成功!

qq_43372633的博客 2148

【软件系统架构】系列四:嵌入式技术

嵌入式系统是以应用为中心、以计算机技术为基础,并将可配置与可裁剪的软硬件集成于一体的专用计算机系统。它需要满足功能、可靠性、成本、体积、功耗等方面的严格要求。 嵌入式系统一般由以下组成部分构成:

moton2017的博客 999

GB28181 —— 3、C++编写GB28181设备端,完成注册、注销、保活心跳、响应查询目录等功能(附源码)

GB28181 —— Win10下编写GB28181设备端,完成注册、注销、保活心跳、响应查询目录等功能(附源码)

1308

Spring源码编译,导入IDEA,调试源码

安装Gradle 因为Spring项目是用Gradle管理的,所以得先安装Gradle,本文编译的源码版本为5.2.2.RELEASE 最好用和源码一个版本的gradle,不然会有各种问题,直接访问源码中带的链接即可 新建环境变量 export GRADLE_HOME=/Users/peng/software/gradle-5.6.4 export PATH=$PATH:$GRADLE_HOME/bin 命令行输入 gradle -v 输出版本则表示安装正确 spring项目github地址: htt

小识的博客 3093

【BUG已解决】RuntimeError: CUDA error: no kernel image is available for execution on the device 解决方案

方案适用场景推荐指数精确匹配官方版本绝大多数场景(大众消费卡+主流数据中心卡)⭐⭐⭐⭐⭐安装历史旧版本Pascal/Maxwell等老显卡⭐⭐⭐⭐安装Nightly版本刚发布的最新架构显卡⭐⭐⭐⭐源码编译官方各版本均不支持的特殊硬件⭐⭐Docker官方镜像追求省心、避免版本排查⭐⭐⭐⭐⭐的核心是PyTorch 预编译包不包含你显卡对应的计算能力架构先确认显卡真实计算能力),而不是盲目重装驱动对比 PyTorch 支持的架构列表),定位是否真的不匹配精确匹配官方版本。

博客 1万+

Spring5.x源码编译及导入IDEA全过程及踩坑记录

文章目录1.写在前面2.编译前需要准备的环境和工具。3.具体步骤4.总结 1.写在前面 Spring作为风靡世界的优秀框架,很早就想研究研究Spring源码了。最近亲手搭建了Spring环境,从下载源码到编译到改动源码测试demo跑通,有些踩坑和心得需要记录一下,也与大家分享一下。 注:笔者在2台不同电脑上均告成功,但是也不敢保证各位看官一定能成功,如果失败请轻拍砖。不过相信对各位编译Spring...

疯狂的暴走蜗牛的专栏 7746

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

IDEA编译Spring 5.2.x源码

环境: win10系统 IDEA Ultimate 2019.3 【https://www.jetbrains.com/idea/download/#section=windows】 Spring 5.2.6 【https://github.com/spring-projects/spring-framework】 Gradle 6.4.1 【https://gradle.org/releases/】 编译步骤如下: 一、下载Spring源码 约16M,先下载,github下砸速度很慢,建议不要直接.

u013998466的博客 2322

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

WIN10下使用IDEA构建spring源码图文教程,亲测有效

WIN10下使用IDEA构建spring源码图文教程,亲测有效简介环境步骤下载构建 简介 这一阵子在读spring源码,但是网上的文章,构建spring源码大都有问题,导致我构建源码的时候出现了很多问题。所以我自己重新构建了一下,所有的环境都是当前时间之前最新的。 环境 win10 + jdk1.8.0_211 + IntelliJ IDEA 2019.1.3 步骤 下载 在官网下载最新版的spr...

桃花扇 2096

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

win10 Idea构建spring 5.3.10-SNAPSHOT 源码环境

使用的工具 idea2020.3 gradle6.8.3 openJDK1.8.0_302 spring5.3.10-SNAPSHOT gradle和openJDK的下载路径(1分):https://download.csdn.net/download/qq_22843051/20619765 Java安装步骤 openJDK1.8.0_302的下载地址(这里边有,一个积分,这个版本不怎么好找) https://download.csdn.net/download/qq_22843

魔术师的独白 797

spring5源码编译(亲测)

这一阵子在读spring源码,但是网上的文章,构建spring源码大都有问题,导致我构建源码的时候出现了很多问题,所以我自己重新构建了一下。纠结了一会儿要不要写这篇文章,还是决定写下来,当作笔记用,同时给广大网友提供一个编译spring源码的方法。 本机环境 win10 + jdk1.8.0_151 + IntelliJ IDEA 2019.1.3 spring使用的是5.0版本(下面介绍的方法在...

走不动的木木 1681

查看编译spring5源码(基于IDEA)

查看编译spring5源码(基于IDEA) 使用工具介绍:Gradle+Idea2019 1.gradle 它是一个基于JVM的构建工具,是一款通用灵活的构建工具,支持maven, Ivy仓库,支持传递性依赖管理,而不需要远程仓库或者是pom.xml和ivy.xml配置文件,基于Groovy,build脚本使用Groovy编写。 操作步骤如下: 第一步:我们需要去gradle官网去下载gradle,对于gradle版本要求必要保证在需要4.2以上(这里下载的是6.2版本) gradle下载地址:https:

qq_22993855的博客 704

编译Spring源码

使用环境 idea:2019.3 jdk:1.8 spring:5.2.0.RELEASE 第一步:下载Spring源码 注意:一定要去官网的github上下载,各类教程的自带资料有可能被加工过了,总是出现一些奇怪的错误,查都查不到怎么去解决。 官网下载步骤: 点小猫跳转到spring的github地址。 选择分支和版本下载。 第二步 编译spring-oxm 官方文档中有具体的命令操作。 需要安装gradle,gradle的功能和maven差不多,但是代码更简洁。网上有教程说不需要安装,亲测在wi

yishifanghua的博客 330

Thingsboard4.3.1源码本地widows运行测试

本文简要介绍了在Windows环境下搭建Thingsboard 4.3.1开发环境的过程。主要包括:验证Java 17和Maven 3.6.3环境,安装Node.js、npm和yarn(非必需),配置PostgreSQL 16数据库,使用IDEA 2023.1导入项目源码。重点说明了项目编译命令(mvn clean install)、数据库初始化步骤,以及如何通过修改环境变量解决ThingsboardInstallApplication运行报错问题。最后提到成功运行后可访问本地8080端口查看效果,并计划后

2504_93974819的博客 638

window本地编译Spring源码并运行

Spring源码本地编译并且运行

Alan0517 570

Spring源码-阅读环境搭建

文章目录前言一、下载spring源码二、Gradle下载与配置下载安装配置环境变量(不附图了)测试三、spring-framework相关配置文件修改1. gradle-wrapper.properties编辑2. settings.gradle编辑3. build.gradle编辑四、开始编译导入到IDEA最终效果 前言 阅读源码的益处不再多谈,此篇记录本人如何完成Spring源码阅读环境的搭建,主要是源码编译,此篇只做参考 环境如下: win10 idea2020.1 spring-framew

yjw2017的博客 255

Spring 5.0.x 源码编译

1. 下载spring源码并导入IDEA工具 使用码云下载:https://gitee.com/mirrors/Spring-Framework.git GitHub下载: 2. 修改gradle-wrapper.properties 路径:/Spring-Framework/gradle/wrapper/gradle-wrapper.properties 2.1 修改gradle版本为4.4.1-all 2.2 点击重新编译 2.3 使用IDEA工具进行build...

qq_38832332的博客 187

Spring源码环境搭建

源码环境编译 准备环境工作 JDK 1.8.022 Gradle 5.6.3 Idea 2018.2.8.win Spring 5.1 Gradle配置 配置Gradle国内镜像访问地址信息 在Gradle安装目录init.d下,新建init.gradle文件夹,其中输入内容为: allprojects{ repositories { def REPOSITORY_URL ...

小程序 459

Spring源码搭建

简介 我们平常说的使用的spring,是spring全家桶中的spring-framework项目中的几个小模块,所以spring中可不仅仅只有IOC和AOP。 想要学习spring源码,第一步一定是构建spring源码环境 Spring源码构建 因为spring是用gradle构建的,所以需要确保本机有gradle。 我的环境是JDK1.8、Gradle5.6.1 第一步:从gith...

qq_41769785的博客 796
上一篇: npm 提示 node_modules\fsevents 找不到
下一篇: 用单链表表示【多项式加法】
种花途。
博客等级 码龄10年 3粉丝 43原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值