Spring源碼導讀之Spring簡介

Spring源碼導讀

目錄

下載Spring源碼

Spring的7大模塊

應用上下文

bean工廠

兩類Processor(理解爲Spring的插件)


 

下載Spring源碼

spring framework地址: 

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實現的