Win10;IDEA2019.2;Gradle5.6.4;JDK8;Spring5.2.0
这里注意,IDEA2018 是不行的,你直接用 2019 版本,你会发现搭建这个环境挺简单的嘛,否则很难受(别问我为什么难受~);Gradle 版本的话,我没测试,但是这个版本是可以的
官网 下载对应版本的 binary-only 即可
下载好后就是配置环境变量了,这个是基本操作,不会的自己 Google 解决
直接去 Github 上下载超级慢,所以选了个折中的办法。在码云 上面注册一个账号,然后它是可以同步你的 Github 仓库的,即:
Java8:Spring5以上的必须
IDEA:2019.X
下面的操作可能大家做法不一样,但是我这里讲窝窝屎怎么做的,然年我是本地搭建成功的
这个也是需要下载很多依赖包的,所以得用国内的阿里云镜像下载,嗖嗖的。
修改项目根目录下的build.gradle文件
// 在开始的buildscript中加入如下内容
// 加快构建脚本自身使用的依赖下载。
buildscript {
repositories {
maven{ url ‘https://maven.aliyun.com/nexus/content/groups/public/’ }
maven{ url ‘https://maven.aliyun.com/nexus/content/repositories/jcenter’}
}
dependencies {
classpath ‘org.asciidoctor:asciidoctorj-pdf:1.5.0-alpha.16’
classpath ‘io.spring.asciidoctor:spring-asciidoctor-extensions:0.1.3.RELEASE’
}
}
// 在configure(allprojects)中添加maven仓库。
// 加快项目使用的依赖下载
configure(allprojects) {
dependencyManagement {
repositories {
maven{ url ‘https://maven.aliyun.com/nexus/content/groups/public/’ }
maven{ url ‘https://maven.aliyun.com/nexus/content/repositories/jcenter’}
maven { url “https://repo.spring.io/libs-spring-framework-build” }
}
}
}
进入到你下载的源码目录下预编译:gradlew.bat :spring-oxm:compileTestJava
出现 BUILD SUCCESSFUL 就是编译成功了!
file->new->project from exsiting source… 选择你的源码目录,选择 Gradle
进入后 IDEA 就会自动帮你构建;构建好之后在 IDEA 控制台也会出现成功的提示。
到现在为止,源码环境就搭建成功了。那么如何调试呢?
右键根项目spring-framewok->New-> Module-> 选择Gradle->Java->Next-> 添加项目命名->Finish,一个属于自己的项目模块就创建完成了。这个时候发现项目目录下的 settings.gradle 文件多了一行 include ‘你的模块名’, 这是自动添加的,是不是很智能,省去了麻烦。但是这里有一个注意的地方,需要将include '你的模块名’移动到 rootProject.children.each 的上方,否则 spring 的构建脚本是无法正确导入我们自定义的这个模块的。(这点可以说明 gradle 是按照顺序来执行脚本的)
// 对该模块的描述
description = “spring学习模块”
// 项目依赖
dependencies {
// 添加对spring-context的依赖
implementation(project(":spring-context"))
}
package com.nhy.spring.Service;
public interface UserService {
public String getName(String firstName, String lastName);
}
package com.nhy.spring.Service.Impl;
import com.nhy.spring.Service.UserService;
public class UserServiceImpl implements UserService {
@Override
public String getName(String firstName, String lastName) {
return String.format("%s%s", firstName, lastName);
}
}
package com.nhy.spring;
import com.nhy.spring.Service.UserService;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class NhyMain {
public static void main(String[] args) {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:test.xml");
UserService userService = (UserService) applicationContext.getBean("userService");
System.out.println(userService.getName("Hello", " World"));
}
}
XML 的约束可以直接在对应 Spring 模块下的 test/sources 下查找 xml 文件,复制粘贴即可。
<beans>
<alias name="someMessageSource" alias="myMessageSource"/>
<bean id="userService" class="com.nhy.spring.Service.Impl.UserServiceImpl">bean>
beans>
此时即可运行 Main 文件:
成功!
如果自己打一个断点进去看,发现就是走的你导入的 Spring-framework 下面的模块代码。
所以,现在享受这个你所认为的感觉吧,管他是煎熬、兴奋 ;干,就完了!
Spring源码之环境搭建