这里将开始攻克spring源码。
1、了解spring,spring家族脑图
2、spring基础架构图
spring家族庞大,初学要抓住spring重点,从spring的基础和核心开始熟悉
核心模块简介:
- 1、spring-core(IOC & DI)
- spring的核心模块,包含框架基本的核心工具类,其他组件都要使用这个包里的类;
- 定义并提供资源的访问方式。
- 2、spring-beans:spring主要面向bean编程(BOP)
- bean的定义(BeanFactory);
- bean的解析;
- bean的创建。
- 3、spring-context
- 为spring提供运行时环境,保存对象的状态;
- 扩展了BeanFactory(ApplicationContext)。
- 4、spring-aop(最小化的动态代理实现)
- JDK动态代理;
- Dglib代理;
- 只能使用运行时织入,仅支持方法级编织,仅支持方法执行切入点。
- 备注:
spring-aop只是最简单的切面实现。
3、源码下载与编译,以阅读官方文档为主,遇到无法解决的问题再百度,论坛
spring 官网https://spring.io/
spring源码托管在github:https://github.com/spring-projects/spring-framework
构建中可能遇到的问题:
使用idea导入方式构建
编译步骤:
编译前最优先替换仓库地址:
替换gradle的阿里云仓库镜像:根目录/build.gradle
repositories {
maven{ url 'https://maven.aliyun.com/repository/public/' }
}
替换两处:
然后导入idea,
创建demo,打印helloworld,即成功。