专栏目录
- 1-Spring架构源码分析-Spring源码搭建
- 2-Spring架构源码分析-SSM框架说明
- 3-Spring架构源码分析-spring体系
- 4-Spring架构源码分析-Spring IOC机制设计思想和源码解读
- 5-Spring架构源码分析-Spring IOC之 Spring 统一资源加载策略
- 6-Spring架构源码分析-IoC 之加载 BeanDefinition
- 7-Spring架构源码分析-IoC 之注册 BeanDefinitions
- 8-Spring架构源码分析-IoC 之解析Bean:解析 import 标签
- 9-Spring架构源码分析-IoC 之解析 bean 标签:开启解析进程
- 10-Spring架构源码分析-IoC 之解析 bean标签:BeanDefinition
- 11-Spring架构源码分析-IoC 之注册解析的 BeanDefinitions
- 12-Spring架构源码分析-IoC 之装载 BeanDefinitions 总结
- 13-Spring架构源码分析-IoC 之开启 Bean 的加载
- 14-Spring架构源码分析-IoC 之加载 Bean:总结
- 15-Spring架构源码分析-Spring代理与AOP
- 16-Spring AOP源码分析-@EnableAspectJAutoProxy和AspectJAutoProxyRegistrar
- 17-Spring AOP源码分析-AnnotationAwareAspectJAutoProxyCreator
- 18-Spring AOP源码分析-AOP与BeanPostProcessor处理器
- 19-Spring AOP源码分析-代理对象调用目标方法
- 20-spring mvc设计思想和源码解读-spring mvc 功能特性
- 21-mvc 体系结构源码详解
- 22-Spring MVC源码跟踪
- 23-Spring事务源码分析
Spring 5.0源码搭建
源码下载
# 国内镜像地址
git clone https://gitee.com/mirrors/Spring-Framework.git
cd Spring-Framework
# 切换tag
git checkout -b "v5.0.2.RELEASE" v5.0.2.RELEASE
配置gradle
Idea自动下载方案(推荐)
打开idea 设置
手动安装方案(不推荐)
查看版本
查看spring依赖的gradle版本
代码路径 Spring-Framework/gradle/wrapper/gradle-wrapper.properties
distributionUrl=https\://services.gradle.org/distributions/gradle-4.3.1-all.zip
版本为gradle-4.3.1
下载gradle
官网下载地址:https://gradle.org/releases/
这里有不同的版本提供下载
配置gradle环境变量
前提需要先配置jdk1.7或1.8的环境变量
windows
系统变量中新建变量
GRADLE_HOME
E:\workspace\gradle\gradle-4.3.1
编辑Path
%GRADLE_HOME%\bin
验证是否配置成功,进入cmd后,输入gradle -v,显示环境配置
参考https://blog.csdn.net/xudaliang_/article/details/79213891
mac
# 编辑环境变量
vim ~/.bash_profile
GRADLE_HOME=/Users/xianghan/work/gradle-4.3.1
export GRADLE_HOME
export PATH=$PATH:$GRADLE_HOME/bin
# 保存文件
# 加载环境变量
source .bash_profile
# 验证
gradle --version
编译代码
spring目录下执行命令:./gradlew :spring-oxm:compileTestJava
(Windows环境下是执行gradlew.bat
)
下图是编译成功结果
如果编译过程很慢,可以尝试修改maven仓库,再执行上面的命令
Spring-Framework/gradle/wrapper/gradle-wrapper.properties
repositories {
//在此处加上这么一行
maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }//新增阿里云maven私服
maven { url "https://repo.spring.io/libs-release" }
maven { url "https://repo.spring.io/milestone" } // for AspectJ 1.9 beta
}
导入IDEA
编译好源码后我们需要导入到Idea中进行调试,当然你也可以选择eclipse进行调试。
第一步:选择import project ,然后选择spring项目文件夹下面的build.gradle文件,选择后效果如下:
点击ok就会进入项目,然后Gradle会进行相关的依赖包下载。
手动构建方法
构建完成后
创建自定义模块
新建模块
点击next,输入模块名称
确定,创建成功
修改依赖配置
Spring-Framework/nx-spring/build.gradle
修改如下
dependencies {
compile(project(":spring-context"))
compile(project(":spring-instrument"))
testCompile group: 'junit', name: 'junit', version: '4.12'
}
新增package com.nx
创建spring 扫描配置类
package com.nx;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.stereotype.Component;
@Component
@ComponentScan("com.nx")
public class AnnotatedScanConfig {
}
创建一个service
package com.nx;
import org.springframework.stereotype.Service;
@Service
public class AppService {
public void say() {
System.out.println("NX NX NX !!!");
}
}
定义一个测试类
package com.nx;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
public class MainTest {
public static void main(String[] args) {
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(AnnotatedScanConfig.class);
AppService appService=context.getBean(AppService.class);
appService.say();
}
}
编译代码
点击步骤1 刷新后出现nx-spring
步骤2 点击build 执行完成后 在nx-spring后出现build文件夹,里面是编译的classes等文件
运行模块
执行MainTest的main方法
专栏目录
- 1-Spring架构源码分析-Spring源码搭建
- 2-Spring架构源码分析-SSM框架说明
- 3-Spring架构源码分析-spring体系
- 4-Spring架构源码分析-Spring IOC机制设计思想和源码解读
- 5-Spring架构源码分析-Spring IOC之 Spring 统一资源加载策略
- 6-Spring架构源码分析-IoC 之加载 BeanDefinition
- 7-Spring架构源码分析-IoC 之注册 BeanDefinitions
- 8-Spring架构源码分析-IoC 之解析Bean:解析 import 标签
- 9-Spring架构源码分析-IoC 之解析 bean 标签:开启解析进程
- 10-Spring架构源码分析-IoC 之解析 bean标签:BeanDefinition
- 11-Spring架构源码分析-IoC 之注册解析的 BeanDefinitions
- 12-Spring架构源码分析-IoC 之装载 BeanDefinitions 总结
- 13-Spring架构源码分析-IoC 之开启 Bean 的加载
- 14-Spring架构源码分析-IoC 之加载 Bean:总结
- 15-Spring架构源码分析-Spring代理与AOP
- 16-Spring AOP源码分析-@EnableAspectJAutoProxy和AspectJAutoProxyRegistrar
- 17-Spring AOP源码分析-AnnotationAwareAspectJAutoProxyCreator
- 18-Spring AOP源码分析-AOP与BeanPostProcessor处理器
- 19-Spring AOP源码分析-代理对象调用目标方法
- 20-spring mvc设计思想和源码解读-spring mvc 功能特性
- 21-mvc 体系结构源码详解
- 22-Spring MVC源码跟踪
- 23-Spring事务源码分析