目录
下载Spring源码
git clone https://github.com/spring-projects/spring-framework.git
构建spring5源码的一些坑和步骤:
https://www.cnblogs.com/houzheng/p/11772510.html#_label2
Spring的7大模块
Core,Aop,Dao,Context,Web,Orm,MVC
Core:Spring核心模块,所有功能依赖该模块,主要实现OIC。
Aop:实现了Aop机制,并提供常用的Aop拦截器
Dao:提供对jdbc的支持
Context:提供框架式的Bean的访问支持,其他框架可以通过Context访问Spring的Bean
Web:提供常见的web框架支持
Orm:提供常用的orm框架管理和辅助支持
MVC:一套轻量级的MVC实现
应用上下文
XXXApplicationContext
核心功能:
1、资源装在成BeanDefinition
2、扫描接口和类定义生成BeanDefinition
3、代理XXXBeanFactory接口所定义的方法(委派成员变量BeanFactory完成)
4、容器刷新过程管理
bean工厂
XXXBeanFactory: 最终实现是DefaultListableBeanFactory( ApplicationContext的BeanFactory就是DefaultListableBeanFactory)
功能:
1、BeanDefinition的管理(各种XXXRegistry)
2、singletonBean的管理 (singletonBeanRegistry)
3、Bean的创建和获取

两类Processor(理解为Spring的插件)
BeanFactoryPostProcessor:
允许自定修改上下文中的BeanDefinition,可应对扫描或装载后的BeanDefinition进行 增删改
BeanPostProcessor
运行修改Bean实例,修改可以包装在bean实例化前后,摧毁前后
@autowire 和 @Resource,以及AOP也是通过BeanPostProcessor实现的
本文深入探讨Spring框架的源码,覆盖Spring的七大模块:Core、Aop、Dao、Context、Web、Orm、MVC。解析了应用上下文、Bean工厂及两类Processor的功能,以及如何下载和构建Spring源码。

257

被折叠的 条评论
为什么被折叠?



