spring源码搭建_spring实战

spring源码搭建_spring实战在构建spring源码前,我们首先要准备好环境。spring5.x版本需要jdk1.8及以上版本的支持,jdk版本过低的同学请先升级,这里不做过多累赘。从spring5.0开始采用Gradle编译,所以需要先安装gradle,spring5官方推荐的版本gradle4.0,下载解压后按以下步骤操作即可。第一步,配置环境变量。第二步,添加环境变量“%GRADLE_HOME%\bin”。第三步,检测环境,输入

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

 一、环境准备

        工欲善其事,必先利其器。

        在构建spring源码前,我们首先要准备好环境。spring 5.x版本需要jdk1.8及以上版本的支持,jdk版本过低的同学请先升级,这里不做过多累赘。

        从spring 5.0开始采用Gradle编译,所以需要先安装gradle,spring 5官方推荐的版本gradle 4.0,下载解压后按以下步骤操作即可。

        第一步,配置环境变量。

        spring源码搭建_spring实战

        第二步,添加环境变量“%GRADLE_HOME%\bin”。

        spring源码搭建_spring实战

        第三步,检测环境,输入gradle -v命令,如果版本显示正常,说明安装成功。 

        spring源码搭建_spring实战

二、源码下载

        从Spring 3.0开始,Spring源码采用GitHub托管,不再提供官网下载链接。这里不做过多赘述,大家可自行去GitHub网站下载,我使用的版本为:v5.1.0.RELEASE,下载完成后,解压源码包会看到如下图所示的文件目录。 

       spring源码搭建_spring实战

三、源码编译

        第一步,修改镜像(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.spring.io/libs-spring-framework-build" }
}

        第二步,切换到项目目录,使用 gradlew :spring-oxm:compileTestJava 命令进行编译。

       spring源码搭建_spring实战

                                               备注:以上报错信息无需关注

        常见错误:

        1.unauthorized

        spring源码搭建_spring实战

         原因分析及解决方案:

                spring.io认证失败,需要登录才能下载,用aliyun仓库替代替,修改setting.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.spring.io/libs-spring-framework-build" }
			
}

        第三步,将源码导入到idea 。

        按照以下步骤进行导入,导入后自动进入builder,过程较为漫长,请耐心等待。

        file->new->Project from Existing Source.

        spring源码搭建_spring实战

        spring源码搭建_spring实战 

        spring源码搭建_spring实战 

         构建成功

        spring源码搭建_spring实战

四、测试

        第一步,新建模块(项目右键->new->Module)

        spring源码搭建_spring实战

        spring源码搭建_spring实战 

        第二步,添加依赖。

compile(project(":spring-context"))
compile(project(":spring-instrument"))

        spring源码搭建_spring实战 

        第三步,编写测试类。

public class User {
	private Integer id;
	private String name = "不才";

	public Integer getId() {
		return id;
	}

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

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
}
@Configuration
@ComponentScan("com.test.bean")
public class Test {

	public static void main(String[] args) {
		ApplicationContext context = new AnnotationConfigApplicationContext(Test.class);
		User user = context.getBean(User.class);
		System.out.println(user.getName());
	}
}

        正常输出,大功告成。

        spring源码搭建_spring实战

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/170030.html原文链接:https://javaforall.net

(0)
上一篇 2022年8月12日 上午9:00
下一篇 2022年8月12日 上午9:00


相关推荐

  • Retinex图像增强算法

    Retinex图像增强算法nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp Retinex 图像增强算法 nbsp Retinex 是一种常用的建立在科学实验和科学分析基础上的图像增强方法 它是 Edwin H Land 于 1963 年提出的 就跟 Matlab 是由 Matrix 和 Laboratory 合成的一样 Retinex 也是由两个单词合成的一个词语 他们分别是 retina 和 cortex 即 视

    2026年3月20日
    2
  • 腾讯和字节待遇_字节和腾讯哪个值得去

    腾讯和字节待遇_字节和腾讯哪个值得去分享我对两家互联网大厂的了解和主观感受大家好,我是鱼皮,最近这段时间,应该是正值大三的小伙伴最忙碌的时候,不少同学都在准备秋季校园招聘。我当时是通过暑期实习转正进入的腾讯,再加上之前也在字节跳动实习过,所以今天就分享下我对这两家互联网公司的了解和工作感受,希望能帮助大家选择,也可以给还在校园的小伙伴一些坚持的动力吧。工作感受接下来我会从多个方面来分享。由于公司很大,不同部门存在差异,所以工作感受比较主观,不代表整个公司的情况。薪资互联网公司的薪资还是挺高的。像我当时在字节跳动实习时.

    2022年10月6日
    5
  • 联想推出OpenClaw免费一键安装服务

    联想推出OpenClaw免费一键安装服务

    2026年3月17日
    3
  • Nginx代理转发_nginx代理和转发的区别

    Nginx代理转发_nginx代理和转发的区别nginx之proxy_pass第一种:location/proxy/{proxy_passhttp://127.0.0.1/;}代理到URL:http://127.0.0.1/test.html第二种(相对于第一种,最后少一个/location/proxy/{proxy_passhttp://127.0.0.1;}代理到URL:http://127.0.0.1/proxy/test.html第三种location/proxy/{p

    2025年7月4日
    8
  • pycharm写脚本_pycharm运行python脚本

    pycharm写脚本_pycharm运行python脚本打开pycharm,file->setting在右侧模板框图中填写模板##!/usr/bin/python3#-*-coding:utf-8-*-#@Time:${DATE}${TIME}#@Author:${USER}#@Email:wayne_lau@aliyun.com#@File:${NAME}.py#@Project:${PROJECT_NAME}其他可用的预定义文件模板变量为:${PROJECT_NAME}-.

    2025年6月9日
    10
  • 【必学收藏】从零开始构建GPT模型:超详细小白实践教程(含完整代码)

    【必学收藏】从零开始构建GPT模型:超详细小白实践教程(含完整代码)

    2026年3月16日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号