Spring 源码环境搭建
Spring 源码下载地址:https://github.com/spring-projects/spring-framework
Gradle 下载地址:https://gradle.org/releases/
查看 Spring 源码中使用的 Gradle 版本,打开下载好的 Spring 源码解压,然后进入到如下图所示的目录当中:
打开 gradle-wrapper.properties
查看 Gradle 版本:
查看了 Spring 中使用的 Gradle 版本之后然后到 https://services.gradle.org/distributions/ 下载对应的 Gradle 版本
配置 Gradle 环境变量
右键 → 我的电脑 → 属性:
新建一个系统变量:GRADLE_HOME
,变量值为 Gradle 的安装位置如下图:
新建完毕之后,紧接着在编辑 PATH 系统变量,在当中添加一个变量值如下图:
%GRADLE_HOME%\bin
验证 Gradle
打开终端输入如下命令即可:
gradle -v
相关配置修改
修改 Gradle
找到如下目录:
修改如下内容,加快编译速度:
distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists distributionUrl=file:///D:/Develop/gradle-5.6.4-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists
查看 idea 的 kotlin
版本,查看方式:File → Setting → Plugins,没有安装过的,需要进行安装:
修改 build.gradle 配置
找到目标文件:build.gradle
在根目录下:
注释 Gradle 企业约束:
添加阿里镜像
在此文件中搜索关键字:repositories
搜索后,添加如下内容:
maven { url 'https://maven.aliyun.com/nexus/content/groups/public/' } maven { url 'https://maven.aliyun.com/nexus/content/repositories/jcenter'}
修改 settings.gradle 配置
找到目标文件:settings.gradle
在根目录下:
在 setting.gradle 中搜索关键字:pluginManagement
搜索后,添加如下内容:
maven { url "https://maven.aliyun.com/repository/public" }
修改 gradle.properties
找到目标文件:gradle.properties
在根目录下:
version=5.2.16.RELEASE org.gradle.jvmargs=-Xmx2048M org.gradle.caching=true org.gradle.parallel=true org.gradle.configureondemand=true org.gradle.daemon=true
导入源码
依次点击 File → New → Project from Existing Sources,选择源码包路径下的 build.gradle
文件完成源码导入如下图:
idea 配置 gradle
依次点击:File → Setting → Build, Execution, Deployment → Build Tools → Gradle:
导入之后就等待&configure 成功即可🐤
Spring 预编译
先编译 spring-core
点击 idea 右边的侧边栏当中的 gradle 选择该模块,spring-core/Tashks/other/compileTestJava 如下图:
spring-core 编译了之后然后在按照我给了模块顺序依次全部编译一下,spring-oxm
,spring-context
,spring-beans
编译了之后在 idea 当中按两下 Shift
搜索:ApplicationContext
查看 UML 图 ctrl + alt + shift + U 能够看到 UML 图,说明编译成功如下图:
构建自己的 spring-demo 工程
创建好了工程之后然后在依赖一个 spring-context 修改 Gradle 文件加入如下内容:
compile project(':spring-context') testCompile group: 'junit', name: 'junit', version: '4.12'
紧接着创建几个类文件,还是以三层架构的方式进行分包最终的文件内容如下图所示:
UserService.java
/** * @author BNTang * @program spring * @date Created in 2021/9/29 029 11:39 * @description **/ public interface UserService { /** * 显示 */ void show(); }
UserServiceImpl.java
/** * @author BNTang * @program spring * @date Created in 2021/9/29 029 11:40 * @description **/ public class UserServiceImpl implements UserService { @Override public void show() { System.out.println("Hello Spring"); } }
SpringTest.java
/** * @author BNTang * @program spring * @date Created in 2021/9/29 029 11:42 * @description **/ public class SpringTest { public static void main(String[] args) { AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(); applicationContext.register(UserServiceImpl.class); applicationContext.refresh(); UserService userService = applicationContext.getBean(UserService.class); userService.show(); } }
如上的内容创建完毕之后,然后直接运行即可效果如下图,出来了结果就代表已经编译成功了:
AspectJ 编译失败问题
如果遇到了可以按照我下方给出的步骤进行解决,AspectJ 下载地址:https://www.eclipse.org/aspectj/downloads.php 下载完毕之后找到下载的目录,使用 cmd 运行 jar 包命令如下:
java -jar xxx.jar
运行下载好的 AspectJ.jar 如下:
java -jar aspectj-1.9.6.jar
出现了如上界面之后一直下一步即可,第二个页面就是选择你所用的 JDK,其中有一个界面是说 aspectj 安装在那里,安装过程图我就不贴了,安装完毕了 AspectJ 之后然后在检查 idea 是否也安装了 AspectJ 插件如下图:
如上的内容都完毕了之后然后在进入到 Project Structure
:
最后
本期结束咱们下次再见👋~
🌊 关注我不迷路,如果本篇文章对你有所帮助,或者你有什么疑问,欢迎在评论区留言,我一般看到都会回复的。大家点赞支持一下哟~ 💗