ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Spring源码01:环境搭建

2022-08-28 11:03:59  阅读:241  来源: 互联网

标签:01 aspects spring gradle maven 源码 Spring GRADLE


写在开始:这个系列会陆续更新我学习Spring源码的一些笔记与自己的理解,由于本人水平有限,难免对有些知识理解不到位,亦或者手误导致文中有不正确的地方,欢迎各位指正与探讨。

本文将自己学习源码之前的一些准备工作与环境搭建过程记录于此。

0.版本信息

Idea:2020.1(Mac)+JDK1.8+Gradle-5.6.4+Spring 5.2.x

版本对应很重要,务必相对应

1.源码获取

从Github上拉取源码,clone网速慢的可以自行将Github上的源码导入至自己的Gitee中然后拉取切换分支到5.2.x,这里不做过多赘述。

Github源码地址:[https://github.com/spring-projects/spring-framework]

2.查看导入文档

在拉取的Spring的源码中找到import-into-idea.md文件打开,作者已注明安装的步骤。

Steps:
// 使用gradle对oxm进行编译

  1. Precompile spring-oxm with ./gradlew :spring-oxm:compileTestJava
    // 在idea中导入
  2. Import into IntelliJ (File -> New -> Project from Existing Sources -> Navigate to directory -> Select build.gradle)
    // 对spring-aspects模块进行排除
  3. When prompted exclude the spring-aspects module (or after the import via File-> Project Structure -> Modules)
  4. Code away

3.安装Gradle

由于Spring项目不是用maven构建而是用gradle构建的,所以我们先得安装gradle

  1. 查看Spring项目默认支持的gradle版本号

    在项目根目录下:gradle->wrapper->gradle-wrapper.properties打开该文件找到gradle的版本信息

  2. 下载gradle

    下载地址:[https://services.gradle.org/distributions/]

    找到对应版本,点击下载。

  3. 安装gradle
    将下载下来的zip包解压到固定目录下 ,解压后目录结构如下

  4. 配置环境变量

    ~/.bash_profile中加入以下变量,添加完成后记得重新加载配置文件(source ~/.bash_profile)

    windows用户可自行查询添加环境变量的方法(和Java配置环境变量类似)

    # gradle
    # GRADLE_HOME=下载后的解压目录
    GRADLE_HOME=/Users/lfh/work/developer/tools/gradle-5.6.4;
    export GRADLE_HOME
    export PATH=$PATH:$GRADLE_HOME/bin
    # GRADLE_USER_HOME:GRADLE的仓库名称(相当于maven仓库),变量名称必须为此,不能改变,目录路径可自定义
    GRADLE_USER_HOME=/Users/lfh/work/developer/tools/gradle_repository
    export GRADLE_USER_HOME
    
  5. 查看版本信息

    使用命令行gradle -version,当看到以下信息就证明配置成功。

  6. 修改依赖仓库下载地址

    由于默认仓库在境外下载依赖较慢,所以我们在gradle解压目录下新建init.gradle文件并添加阿里仓库地址,会根据配置的仓库地址以此进行寻找。

    mavenLocal():使用本地maven仓库

    mavenCentral():使用gradle中心仓库

    allprojects {
        repositories {
            mavenLocal()
            maven { name "Alibaba" ; url "https://maven.aliyun.com/repository/public" }
            maven { name "Bstek" ; url "https://nexus.bsdn.org/content/groups/public/" }
            mavenCentral()
        }
    
        buildscript { 
            repositories { 
                maven { name "Alibaba" ; url 'https://maven.aliyun.com/repository/public' }
                maven { name "Bstek" ; url 'https://nexus.bsdn.org/content/groups/public/' }
                maven { name "M2" ; url 'https://plugins.gradle.org/m2/' }
            }
        }
    }
    

4.编译

切换到Spring项目根目录下,使用命令进行编译。编译时间有点漫长,耐心等待。如果出现编译失败的情况,可多尝试几遍。

win下的命令:gradlew :spring-oxm:compileTestJava

mac下的命令:./gradlew :spring-oxm:compileTestJava

编译中:

编译成功:

5.导入Idea

File -> New -> Project from Existing Sources -> build.gradle

导入过程依旧漫长,耐心等待......

导入成功:

配置项目:

6.排除非必要模块spring-aspects

When prompted exclude the spring-aspects module (or after the import via File-> Project Structure -> Modules)

根据官方描述需要排除spring-aspects模块,或者可自行下载导入spring-aspects模块,5.2.x版本的源码已经有spring-aspects模块,可跳过此步骤。别的版本如需排除,可自行查询排除方法。

7.新建模块进行测试

项目右键->new->Moudle

  1. 新建Moudle:spring-demo

  1. 在build.gradle中添加依赖
dependencies {
    compile(project(":spring-context"))
    compile(project(":spring-beans"))
    compile(project(":spring-core"))
    testCompile group: 'junit', name: 'junit', version: '4.12'
}

  1. 新建类:src->main->java->HelloWord
public class HelloWorld {

	private String str = "hello,World!";

	public String getStr() {
		return str;
	}
}
  1. 新建配置文件:src->main->resources->spring-config.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"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
  
	<bean id="helloWorld" class="com.atlfh.HelloWorld"/>
</beans>
  1. 新建测试类:src->test->java->MyBeanTest
	@Test
	public void test(){
		//FileSystemXmlApplicationContext sc = new FileSystemXmlApplicationContext("classpath:spring-config.xml");
		//FileSystemXmlApplicationContext sc = new FileSystemXmlApplicationContext("src/main/resources/spring-config.xml");
		ClassPathXmlApplicationContext sc = new ClassPathXmlApplicationContext("spring-config.xml");
		HelloWorld helloWorld = (HelloWorld)sc.getBean("helloWorld");
		String str = helloWorld.getStr();
		System.out.println(str);
	}
  1. 启动测试成功

标签:01,aspects,spring,gradle,maven,源码,Spring,GRADLE
来源: https://www.cnblogs.com/godot-npe/p/16632354.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有