一、准备相应环境以及下载spring项目

Ps:此处只讲解安装gradle

1、JDK安装

2、Idea安装

3、gradle安装

Gradle下载路径:https://services.gradle.org/distributions/

Gradel配置环境变量:

a、将下载的gradle解压到本地,取出本地的全路径

b、新建环境变量GRADLE_HOME,值为Gradle的解压位置

c、配置path路径如下:%GRADLE_HOME%\bin

d、win+r输入cmd进入dos界面,键入命令gradle -v结果如图:表示安装成功

配置gradle的jar仓库

a、新建环境变量GRADLE_USER_HOME,值为Gradle的jar仓库位置。

Ps:此步骤可以不用配置可由编译器指定。

4、Git安装

5、下载spring项目

下载spring项目有2种方式,本文采用第一种方式下载

第一种:

下载路径:https://github.com/search?q=spring

找到项目:

点击上图所示项目进入如下界面:

如图先点击1所示下拉选框选择需要下载的源码版本,而后点击2的绿色按钮下载压缩包到本地。

二、Spring项目的导入

打开idea进入如下界面:

点击inport Project在弹出的页面中找到本地解压的spring项目根目录下,找到build.gradle选中并点击ok跳转到如下页面:

分别配置gradle的位置,jdk位置。

Gradle VM options可配置指定的gradle编译参数配置如下:-XX:MaxPermSize=2048m -Xmx2048m -XX:MaxHeapSize=2048m。点击ok进入idea工作界面,等待编译即可。

Ps:如果安装gradle的时候没有指定仓库可以在此处配置仓库位置

Ps:如果

此处长时间处于编译状态时可以停止编译改为手动编译

三、spring源码的编译

1、编译spring-core

win+r输入cmd进入dos界面,使用dos命令跳转至spring项目跟目录下:输入命令gradlew :spring-core:compileTestJava即可开始编译spring-core。编译完成结果如下:

2、编译spring-oxm

win+r输入cmd进入dos界面,使用dos命令跳转至spring项目跟目录下:输入命令gradlew :spring-oxm:compileTestJava即可开始编译spring-core。编译完成结果如下:

四、测试

在spring目录下新建一个model,创建如下测试类:

AppConfig配置注解类

package test;

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Component;

@Configuration  //标注本类是配置类
@ComponentScan(value = "test")    //配置扫描包
//@Component(value = "")
public class AppConfig {
}

测试bean:TestBean

package test;

import org.springframework.stereotype.Component;

@Component(value = "testBean")
public class TestBean {

public TestBean() {
      System.out.println("init");
   }
}

View类:

public class View {

/**
    * 注解版视图解析
    * @param args
    */
   public static void main(String[] args) {
      AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class);
//    ac.scan("TestBean");
      TestBean bean = (TestBean) ac.getBean("testBean");
      System.out.println(bean);
   }

右键run控制台输出结果如下:

Spring5.0源码环境搭建完毕

ps:此博客仅为记录博主所学知识

spring5.0源码项目搭建的更多相关文章

  1. Spring5.0源码学习系列之浅谈BeanFactory创建

    Spring5.0源码学习系列之浅谈BeanFactory创建过程 系列文章目录 提示:Spring源码学习专栏链接 @ 目录 系列文章目录 博客前言介绍 一.获取BeanFactory主流程 二.r ...

  2. Spring5.0源码学习系列之事务管理概述

    Spring5.0源码学习系列之事务管理概述(十一),在学习事务管理的源码之前,需要对事务的基本理论比较熟悉,所以本章节会对事务管理的基本理论进行描述 1.什么是事务? 事务就是一组原子性的SQL操作 ...

  3. Spring5.0源码学习系列之Spring AOP简述

    前言介绍 附录:Spring源码学习专栏 在前面章节的学习中,我们对Spring框架的IOC实现源码有了一定的了解,接着本文继续学习Springframework一个核心的技术点AOP技术. 在学习S ...

  4. CentOS 7.0源码包搭建LNMP方法分享(实际环境下)

    CentOS 7.0编译安装Nginx1.6.0+MySQL5.6.19+PHP5.5.14 一.配置防火墙,开启80端口.3306端口 CentOS 7.0默认使用的是firewall作为防火墙,这 ...

  5. Spring5.0源码学习系列之浅谈懒加载机制原理

    前言介绍 附录:Spring源码学习专栏 在上一章的学习中,我们对Bean的创建有了一个粗略的了解,接着本文挑一个比较重要的知识点Bean的懒加载进行学习 1.什么是懒加载? 懒加载(Lazy-ini ...

  6. Spring5.0源码学习系列之浅谈循环依赖问题

    前言介绍 附录:Spring源码学习专栏 在上一章的学习中,我们对Bean的创建有了一个粗略的了解,接着本文浅谈Spring循环依赖问题,这是一个面试比较常见的问题 1.什么是循环依赖? 所谓的循环依 ...

  7. 使用idea编译spring-framework5.0源码

    自从迈入java开发这个行当,从来没有好好的研究过源码,深感惭愧,话不多说,今天上一篇使用idea编译spring5.0源码. 以下在win中构建和编译过程分为 jdk环境的配置 gradle的下载和 ...

  8. Spring5.x源码分析 | 从踩坑到放弃之环境搭建

    Spring5.x源码分析--从踩坑到放弃之环境搭建 前言 自从Spring发行4.x后,很久没去好好看过Spring源码了,加上最近半年工作都是偏管理和参与设计为主,在技术细节上或多或少有点疏忽,最 ...

  9. 使用Maven将Hadoop2.2.0源码编译成Eclipse项目

    编译环境: OS:RHEL 6.3 x64 Maven:3.2.1 Eclipse:Juno SR2 Linux x64 libprotoc:2.5.0 JDK:1.7.0_51 x64 步骤: 1. ...

随机推荐

  1. vc++调用msscript.ocx解析实现C++与JavaScript脚本交互

    ScriptControl接口 属性名称 类型 备注 AllowUI BOOL 检测是否允许运行用户的接口元素.如果为False,则诸如消息框之类的界面元素不可见. CodeObject Object ...

  2. $bzoj4237$稻草人 $cdq$分治

    正解:$cdq$分治 解题报告: 传送门$QwQ$ $umm$总感觉做过这题的亚子,,,? 先把坐标离散化,然后把所有点先按$x$排序$QwQ$,然后用类似平面最近点对的方法,先分别解决$mid$两侧 ...

  3. idea编辑器的使用

    编辑器下载和安装就不说了,网上每次版本都更换得好快 ,发新版的人很多idea2019:https://pan.baidu.com/s/1zc1wkQLLVxbXSjy4ISN4aQ 提取码:cgah, ...

  4. 动态规划之用最少的字符操作将字符串A转换为字符串B

    1.试用动态规划算法实现下列问题:设A和B是两个字符串.我们要用最少的字符操作,将字符串A转换为字符串B,这里所说的字符操作包括: (1)删除一个字符. (2)插入一个字符. (3)将一个字符改为另一 ...

  5. 浅谈Java中接口与抽象类的异同

    浅谈Java中接口与抽象类的异同 抽象类和接口这两个概念困扰了我许久,在我看来,接口与抽象类真的十分相似.期间也曾找过许许多多的资料,参考了各路大神的见解,也只能是简简单单地在语法上懂得两者的区别.硬 ...

  6. 1087 有多少不同的值 (20 分)C语言

    当自然数 n 依次取 1.2.3.--.N 时,算式 ⌊n/2⌋+⌊n/3⌋+⌊n/5⌋ 有多少个不同的值?(注:⌊x⌋ 为取整函数,表示不超过 x 的最大自然数,即 x 的整数部分.) 输入格式: ...

  7. 从0开发3D引擎(四):搭建测试环境

    目录 上一篇博文 了解自动化测试 单元测试 集成测试 端对端测试 通过打印日志来调试 了解运行测试 断点调试 通过Spector.js测试WebGL 通过log调试Shader 移动端测试 了解性能测 ...

  8. 小白学Java:包装类

    目录 小白学Java:包装类 包装类的继承关系 创建包装类实例 自动装箱与拆箱 自动装箱 自动拆箱 包装类型的比较 "=="比较 equals比较 自动装箱与拆箱引发的弊端 自动装 ...

  9. Eclipse常用快捷键【转】

    Eclipse的编辑功能非常强大,掌握了Eclipse快捷键功能,能够大大提高开发效率.Eclipse中有如下一些和编辑相关的快捷键.1. [ALT+/]此快捷键为用户编辑的好帮手,能为用户提供内容的 ...

  10. Java故障定位方法总结

    多线程并发,程序执行速度较快,使用简单断点不能够定位到出错的线程: 通过打印日志,不断精确定位故障的位置和导致故障的原因. 在断点处设置condition为Thread.currentThread() ...