Spring 的整体架构
源码环境搭建
工具 使用的是 IDEA
这里分支 选择是 5.0.x
spring-framework Git地址
1 . git clone 后,修改
build.gradle
repositories {
gradlePluginPortal()
maven { url "https://maven.aliyun.com/repository/spring-plugin" }
maven{ url "https://maven.aliyun.com/nexus/content/repositories/spring-plugin"}
maven { url "https://repo.spring.io/plugins-release" }
}
repositories {
mavenCentral()
maven { url "https://maven.aliyun.com/repository/central" }
maven { url "https://repo.spring.io/libs-release" }
maven { url "https://repo.spring.io/libs-spring-framework-build" }
}
2 . 配置
gradle
环境变量,gradle
版本在gradle-wrapper.properties
中distributionUrl
属性中查看
找到默认路径
C:\Users\lizemin\.gradle\wrapper\dists\gradle-4.4.1-bin\46gopw3g8i1v3zqqx4q949t2x\gradle-4.4.1
添加
GRADLE_HOME
添加Path
3 .
Build Project
cglib
和objenesis
的编译错误问题为了避免第三方
class
的冲突,Spring
把最新的cglib
和objenesis
给重新打包了,它并没有在源码里提供这部分代码,而是直接把其放在jar包中,这导致拉取后出现编译出错,那么为了编译通过,我们把jar
补全。
使用
gradle objenesisRepackJar
和gradle cglibRepackJar
命令
异常二
aspect
关键字 违背Java
语法问题原因,
AOP
作为面向对象编程的一种补充,而AOP
在Spring
中也占据着举足轻重的作用,但是AOP
的实现有些时候太过依赖于AspectJ
,所以导致有些类、关键字Java
并不支持,只有AspectJ
才认识,所以我们需要使用ajc.exe
来执行编译
解决问题所在就是 使用
ajc.exe
去编译即可
至此,再次编译
SpringFrameWork
结束,无报错。(此处忽略测试类的异常)