Spring5.1.x源码搭建(IDEA2019.3,Gandle5..6.3)

2020-11-26 17:37
166
0

一、基础环境

  1. JDK1.8

JDK 2. Gandle5.6.3

Gandle 3. IDEA2019.3

IDEA 4. 源码(相当重要) 源码可以根据自己网速的快慢进行选择,快一点可以从GitHub下载(https://github.com/spring-projects/spring-framework) 当然也可以选择Gitee,因为是国内的,相当快一点(https://gitee.com/mirrors/Spring-Framework) 在分支的地方选择5.1.x,下载zip到本地后解压

源码

二、导入

  1. 两种方式导致 1)当前有项目打开

    IDEA 2)当前没有项目打开

    IDEA

  2. 现在模式这边选择Gradle,Finish结束

IDEA 3. 下载Gradle 这边可以选择自动下载,或者也可以自己从官网上下载,推荐自己下载,解压完成可以在环境变量里配置一下,配置的方式和JDK差不多 同时可以配置一下阿里源,在安装目录的init.d目录下,新建init.gradle文件。

allprojects{
    repositories {
        def REPOSITORY_URL = 'https://maven.aliyun.com/repository/public'
        all { ArtifactRepository repo ->
            def url = repo.url.toString()
            if ((repo instanceof MavenArtifactRepository) && (url.startsWith('https://repo1.maven.org/maven2') || url.startsWith('https://jcenter.bintray.com'))) {
                project.logger.lifecycle 'Repository ${repo.url} replaced by $REPOSITORY_URL .'
                remove repo
            }
        }
        maven {
            url REPOSITORY_URL
        }
    }
}
  1. 打开项目 1)将Gradle的加载停止 2)对项目进行Gradle设置以及设置项目的SDK

    IDEA 3)再手动刷新Gradle 这里有一个注意点,不清楚是不是只有我的是这样,因为不是第一次导入,所以没有截到图。可以观察右下角在进行导入的过程中应该只有一个进程,有两个的时候看一下,里面应该会有一个暂停的进程,点击暂停让它继续执行就可以了。中间可能不定时有几次,多注意就没事了。

    Gradle 4)重点 如下图,点击compileTestJava,进行项目的编译

    IDEA 编译context模块,可以先修改一下Gradle的设置,在选择到context模块的测试单元运行测试,目录下多出一个out目录就算成功了

    IDEA IDEA IDEA

三、新建模块

  1. 选择父目录,File新建模块

IDEA 2. 选择Gradle项目,下一步,Finish 结束后,不需要做任何操作,等待项目创建完成,完成后所有项目会自动展开,然后可以点击栏目的右上角把所有项目折叠

IDEA IDEA IDEA 3. 导入context模块 项目完成后会自动打开build.gradle文件,在dependencies中加入代码,刷新项目

dependencies {
	compile(project(":spring-context"))
	testCompile group: 'junit', name: 'junit', version: '4.12'
}

四、跑自己的代码

  1. 新建包,新建AppConfiguration类,并添加注解
package top.singx.config;

import org.springframework.beans.factory.annotation.Configurable;
import org.springframework.context.annotation.ComponentScan;

@Configurable
@ComponentScan("top.singx")
public class AppConfiguration {
}
  1. 新建接口实现类
package top.singx.service;

public interface TestService {

	String sayHi();

}
package top.singx.service.impl;

import org.springframework.stereotype.Service;
import top.singx.service.TestService;

@Service
public class TestServiceImpl implements TestService {

	@Override
	public String sayHi() {
		return "Hi Spring";
	}
}
  1. 新建启动类
package top.singx;

import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import top.singx.config.AppConfiguration;
import top.singx.service.TestService;

public class Application {

	public static void main(String[] args) {
		AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(AppConfiguration.class);
		TestService service = context.getBean(TestService.class);
		System.out.println(service.sayHi());
	}

}
  1. 最后项目展示以及运行结果

Spring

五、最后

	希望大家可以相互讨论,并祝大家工作更进一步,有什么疑问可以在下发留言或者可以发送到我的邮箱xu940803@gmail.com

全部评论