javascript
Spring学习(三)--Spring的IOC
1、BeanFactory和FactoryBean
BeanFactory是一個接口類,定義了IOC容器最基本的形式,提供了IOC容器所應該遵守的基本服務契約。
FactoryBean是一個能產生或者修飾對象生成的工廠Bean,實現方式與工廠模式和修飾器模式類似。
2、getBean()
getBean()方法是使用IOC容器API的主要方法,可以通過指定名字的索引來獲取IOC容器的Bean。
3、BeanFactory的設計原理
4、ApplicationContext
ApplicationContext除了可以提供容器的那些基本功能外,還為用戶提供了各種附加服務。
MessageSource,支持國際化,為開發多語言版本應用提供服務。
訪問資源更加方便。
支持應用事件,繼承了接口ApplictionEventPublisher,在上下文中引入了事件機制。
在ApplicationContext提供附加服務,使IOC容器的工能更加豐富。
5、IOC容器的初始化
IOC容器的初始化是通過refresh()f方法來啟動的,這個方法是用來啟動IOC容器,IOC容器的啟動過程:BeanDefinition的資源Resource定位、載入和注冊。
Spring將這三個過程分離,分別用不同的模塊進行,使用戶可以更加方便的適合自己的IOC容器的初始化過程。
(1)Resource定位
由ResourceLoader通過統一的Resource接口來實現的,這個Resource接口對各種Definition定義了統一的接口。
(2)BeanDefinition的載入
BeanDefinition就是的普通的POJO的抽象表示,通過BeanDefinition定義的數據結構,是IOC容器可以更加方便的管理Bean。
(3)向IOC容器注冊BeanDefinition
通過調用BeanDefinitionRegistry接口的實現來完成的,把載入過程中解析到的BeanDefinition在IOC容器中注入到一個HashMap中,IOC容器通過HashMap來持有這些BeanDefinition。
IOC的初始化過程不包含依賴注入,依賴注入發生在第一次通過getBean()從容器中獲取Bean的時候。我們可以通過對預實例化的配置來規定依賴注入的發生時間。?
轉載于:https://www.cnblogs.com/carblack/p/10858884.html
總結
以上是生活随笔為你收集整理的Spring学习(三)--Spring的IOC的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: flink RPC(akka)
- 下一篇: 版本分支管理标准 - Trunk Bas