一、准备相应环境以及下载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. linux大盘格式化分区

    Linux 实例的磁盘管理 对于 Linux 系统上的大磁盘,也要采用 GPT 分区格式, 也可以不分区, 把磁盘当成一个整体设备使用. 在 Linux 上一般采用 XFS 或者 EXT4 来做大盘的 ...

  2. 有关常用的UI组件

    前段时间想看看大家都用什么UI组件,下面是在网上搜集的,记录在这里方便自己使用和其他小伙伴使用 1:WeUI 小程序–使用教程 https://weui.io/ 官方介绍:WeUI 是一套同微信原生视 ...

  3. acwing 1250. 格子游戏 并查集

    地址 https://www.acwing.com/problem/content/1252/ Alice和Bob玩了一个古老的游戏:首先画一个 n×nn×n 的点阵(下图 n=3n=3 ). 接着, ...

  4. Linux常用命令大全(四)

    Linux常用命令大全(四) shell的特点 ☆组合新命令 ☆提供了文件名扩展字符 ☆直接使用shell的内置命令 ☆灵活地使用数据流 ☆结构化的程序模块 ☆在后台执行命令 ☆可配置的环境 ☆高级的 ...

  5. Java String类相关知识梳理(含字符串常量池(String Pool)知识)

    目录 1. String类是什么 1.1 定义 1.2 类结构 1.3 所在的包 2. String类的底层数据结构 3. 关于 intern() 方法(重点) 3.1 作用 3.2 字符串常量池(S ...

  6. 【GeneXus】在WorkWithPlus中如何定义未被包含的页面属性?

    在使用GeneXus开发项目的过程中,有很多用户会使用到WorkWithPlus这个模板.通过WorkWithPlus的编辑器,让页面的调整变得极为简单,尤其是响应式页面.在WorkWithPlus的 ...

  7. 关于revit的外部扩展存储

    最近被revit的外部扩展存储搞得死去活来,作为日后再次使用的预防针,此处随手留下印记,以作警示. 首先我们知道外部扩展存储ExtensibleStorage是revit提供给revit二次开发人员用 ...

  8. 理解 SQL 开窗函数

    一次面试被问到开窗函数,懵逼了,赶紧补补总结一下.... 开窗函数也是函数,所以 比如在原来的查询上添加一个总数列 create table ztest( id int identity, c1 in ...

  9. 1.常用的cmd命令

    dir      =>  查看当前目录下的所有文件夹 cd..    =>  返回上一级目录 cd/     =>  返回根目录 cd 文件夹  =>  打开当前目录下指定的子 ...

  10. 第一篇:python中的判断语句和循环

    python与C语言的代码格式区别: 需注意:1.python中语句结束没有分号 “;” 2.python中严格要求缩进,且在判断和循环等语句中把括号用冒号代替. 3.经常使用tab键进行缩进. 4. ...