spring源码下载教程

spring源码下载教程

这次以spring v5.3.9版本为例子,讲解如何搭建阅读spring的环境

1、源码下载

下载地址:https://github.com/spring-projects/spring-framework

建议用clone进行下载,因为zip包的方式在idea导入项目时会存在报错的问题。

2、gradle配置

spring中内置了gradle

distributionBase=GRADLE_USER_HOME

distributionPath=wrapper/dists

distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.3-bin.zip

zipStoreBase=GRADLE_USER_HOME

zipStorePath=wrapper/dists

但是idea下载gradle时会很慢,所以如果让idea下载会等很久,所以现在有两种方法

第一种:我们手动下载下来,然后放到任意目录下,把distributionUrl修改为file:///D:/ProgramFiles/gradle-6.8.3-bin.zip,配好GRADLE_USER_HOME(本地仓库)、init.gradle(网络仓库)

第二种:使用本地的gradle

使用Internet Download Manager下载一样版本的gradle

配置方法参照https://blog.csdn.net/GoodburghCottage/article/details/128169907

配好GRADLE_HOME(安装目录)、GRADLE_USER_HOME(本地仓库)、init.gradle(网络仓库)

init.gradle内容:

allprojects {

repositories {

mavenLocal()

maven { name "Alibaba" ; url "https://maven.aliyun.com/repository/public" }

maven { name "Bstek" ; url "http://nexus.bsdn.org/content/groups/public/" }

mavenCentral()

}

buildscript {

repositories {

maven { name "Alibaba" ; url 'https://maven.aliyun.com/repository/public' }

maven { name "Bstek" ; url 'http://nexus.bsdn.org/content/groups/public/' }

maven { name "M2" ; url 'https://plugins.gradle.org/m2/' }

}

}

}

关于init.gradle存放的位置

1.在命令行指定文件,例如:gradle --init-script yourdir/init.gradle -q taskName。你可以多次输入此命令来指定多个init文件

2.把init.gradle文件放到 USER_HOME/.gradle/ 目录下

3.把以.gradle结尾的文件放到 USER_HOME/.gradle/init.d/ 目录下

4.把以.gradle结尾的文件放到 GRADLE_HOME/init.d/ 目录下

如果存在上面的4种方式的2种以上,gradle会按上面的1-4序号依次执行这些文件,如果给定目录下存在多个init脚本,会

按拼音a-z顺序执行这些脚本,每个init脚本都存在一个对应的gradle实例,你在这个文件中调用的所有方法和属性,都会

委托给这个gradle实例,每个init脚本都实现了Script接口。

把项目导入idea,切换到v5.3.9的标签

添加jdk11,因为这次的版本使用的是jdk11,在官网下载即可,然后解压缩,在idea中配置jdk11

设置Gradle的配置

如果使用项目自带的gradle这样配置

如果使用本地的gradle这样配置

如果导入过程中提示无法从某个仓库中下载东西,就把这个仓库在init.gradle中去掉

最后完成导入

新建自己的模块

文件内容

AppConfig

package org.springframework.csp;

import org.springframework.context.annotation.ComponentScan;

import org.springframework.context.annotation.Configuration;

@Configuration

@ComponentScan(basePackages = "org.springframework.csp")

public class AppConfig {

}

HelloService

package org.springframework.csp;

import org.springframework.stereotype.Service;

@Service

public class HelloService {

public String sayHello() {

return "Hello, Spring!";

}

}

Main

package org.springframework.csp;

import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class Main {

public static void main(String[] args) {

// 创建 Spring 容器

AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);

// 从容器中获取 HelloService Bean

HelloService helloService = context.getBean(HelloService.class);

// 使用 Bean

System.out.println(helloService.sayHello());

// 关闭容器

context.close();

}

}

build.gradle

plugins {

id 'java'

}

group 'org.springframework'

version '5.3.9'

repositories {

mavenCentral()

}

dependencies {

implementation project(':spring-context')

implementation(project(":spring-core"))

implementation(project(":spring-aop"))

implementation(project(":spring-beans"))

implementation(project(":spring-context"))

implementation(project(":spring-jdbc"))

implementation(project(":spring-orm"))

implementation(project(":spring-tx"))

implementation(project(":spring-web"))

implementation(project(":spring-webflux"))

implementation(project(":spring-webmvc"))

implementation(project(":spring-websocket"))

}

test {

useJUnitPlatform()

}

点击main方法运行,最后输出

相关推荐

阿里云服务器架设的时间因素解析
365bet提款要多久

阿里云服务器架设的时间因素解析

📅 09-06 👁️ 2381
如何做好质量管理?
365bet提款要多久

如何做好质量管理?

📅 08-19 👁️ 9218
河豚哪里有毒?
365哪个才是真的

河豚哪里有毒?

📅 09-24 👁️ 8227
人的皮肤很黄是怎么回事
365bet官网注册

人的皮肤很黄是怎么回事

📅 10-02 👁️ 6772
雯的组词有哪些
365bet官网注册

雯的组词有哪些

📅 07-10 👁️ 9523
你眼中的大西北甘肃,是个怎样的地方?
365bet提款要多久

你眼中的大西北甘肃,是个怎样的地方?

📅 10-31 👁️ 3171
憐的意思,憐的解释,憐的拼音,憐的部首,憐的笔顺
365哪个才是真的

憐的意思,憐的解释,憐的拼音,憐的部首,憐的笔顺

📅 07-10 👁️ 2006
偃师哪里看男女看的准
365哪个才是真的

偃师哪里看男女看的准

📅 08-25 👁️ 6579
视频使用软解好些还是硬解好些?
365哪个才是真的

视频使用软解好些还是硬解好些?

📅 02-21 👁️ 3543