AbstractApplicationContext的refresh()方法進行啟動的,這個方法標準IoC容器的正式啟動:
具體如下:
1. 第一個過程是Resource定位過程。這個Resource定位指的是BeanDefinition的資源定位,它由ResourceLoader通過統一的Resource接口來完成,這個Resource對各種形式的BeanDef-inition的使用都提供了統一接口。對于這些BeanDefinition的存在形式,相信大家都不會感到陌生。比如,在文件系統中的Bean定義信息可以使用FileSystemResource來進行抽象;在類路徑中的Bean定義信息可以使用前面提到的ClassPathResource來使用,等等。這個定位過程類似于容器尋找數據的過程,就像用水桶裝水先要把水找到一樣。
2. 第二個過程是BeanDefinition的載入。這個載入過程是把用戶定義好的Bean表示成IoC容器內部的數據結構,而這個容器內部的數據結構就是BeanDefinition。下面介紹這個數據結構的詳細定義。具體來說,這個BeanDefinition實際上就是POJO對象在IoC容器中的抽象,通過這個BeanDefinition定義的數據結構,使IoC容器能夠方便地對POJO對象也就是Bean進行管理。在下面的章節中,我們會對這個載入的過程進行詳細的分析,使大家對整個過程有比較清楚的了解。
3. 第三個過程是向IoC容器注冊這些BeanDefinition的過程。這個過程是通過調用BeanDefinitionRegistry接口的實現來完成的。這個注冊過程把載入過程中解析得到的BeanDefinition向IoC容器進行注冊。通過分析,我們可以看到,在IoC容器內部將BeanDefinition注入到一個HashMap中去,IoC容器就是通過這個HashMap來持有這些BeanDefinition數據的.
值得注意的是,這里談的是IoC容器初始化過程,在這個過程中,一般不包含Bean依賴注入的實現。在SpringIoC的設計中,Bean定義的載入和依賴注入是兩個獨立的過程
- 概述
- Spring的使命
- 環境變量
- spring架構
- Spring各版本特性
- Spring3.1新特性
- spring頂級項目
- spring基礎
- spring環境變量
- 依賴注入
- spring獲取bean方法
- BeanFactory vs FactoryBean
- JavaBean裝配
- XML顯式配置
- 基于JAVA配置
- 自動化裝配bean
- SpringBean的作用域
- Spring應用上下文實現
- springbean的生命周期
- 自定義Bean的創建與銷毀
- Spring容器啟動過程
- spring加載xsd文件的流程
- spring擴展接口
- Spring主要類功能說明
- spring事務管理
- 事務特性
- 數據庫事務隔離級別
- 事務隔離性問題
- spring事務隔離級別
- 事務傳播行為
- @Transactional
- 循環依賴
- 構造器注入
- 循環依賴原理
- spring循環依賴原理
- spring三級緩存
- Spring注解
- @Component
- @ComponentScan
- @Autowired
- @Import
- @ImportResource
- @Profile
- @Conditional
- @Qualifier
- @Scope
- @PropertySource
- @Value
- @EnableScheduling
- SpEL-Spring表達式
- Spring-AOP
- SpringAOP五種通知類型
- AOP術語
- SpringMVC
- MVC原理圖
- SpringMVC工作原理
- springboot
- @SpringCloudApplication
- springboot tomcat配置
- Spring Boot Starter POMs
- Spring Boot technical starters
- spring boot事件類型
- Springboot日志
- SpringCloud
- springcloud微服務解決方案
- 服務組件
- 注冊中心
- Eureka
- Spring Cloud Zookeeper
- nacos
- Hystrix熔斷原理
- Hystrix應用
- Spring Cloud Config
- 服務網關
- Zuul
- Spring Cloud Gateway
- 服務調用及負載
- Ribbon
- Feign&OpenFeign
- Turbine
- actuator
- springboot & springcloud
- springcloud vs dubbo
- 常見面試題
- BeanFactory和FactoryBean
- @Autowired/@Resource和@Inject的區別
- Singleton bean注入prototype bean
- 附錄