當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
SpringIOC、DI、AOP、MVC总结、时序图
生活随笔
收集整理的這篇文章主要介紹了
SpringIOC、DI、AOP、MVC总结、时序图
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、IOC容器初始化
IOC 容器的初始化包含了BeanDefinition資源文件Resource定位、解析加載和注冊三個步驟。
?步驟依次為 : 讀取資源文件為InputStream --> 轉為Resource -> Document -> 解析元素節點封裝為 BeanDefinition
-> 放入IOC容器中,即DefaultListableBeanFactory的 Map<String, BeanDefinition> beanDefinitionMap
主要的幾個類
- BeanFactory : BeanFactory及其子類也就是我們說的IOC容器,Spring提供了多種IOC容器以供選擇
ListableBeanFactory接口表示Bean可列表化、HierarchicalBeanFactory接口表示Bean有繼承關系、AutowireCapableBeanFactory定義自動裝配;
以上三個接口的默認實現均為 org.springframework.beans.factory.support.DefaultListableBeanFactory - BeanDefinition : 描述Bean在資源文件中的配置信息及相互關系
- BeanDefinitionReader : 解析資源為BeanDefinition
?入口:
IOC實現流程及原理
?入口: web Ioc容器初始化由DispatcherServlet.init()方法開始
二、DI依賴注入時序圖
入口:
org.springframework.context.support.ClassPathXmlApplicationContext#getBean(java.lang.String) -> org.springframework.context.support.AbstractApplicationContext#getBean(java.lang.String)實現原理: 反射為屬性賦值,如果存在循環依賴,使用三級緩存來處理:一級緩存: 類成功實例化,屬性也成功賦值二級緩存: 類成功實例化,屬性存在循環依賴、不能賦值 三級緩存: 類不能成功實例化 (指定使用構造器方法進行實例化,構造器中的參數存在循環引用) 在初始化完畢,會先遍歷三級緩存進行依賴注入,放入一級緩存;然后遍歷二級緩存,放入一級緩存;
3. AOP時序圖
本文轉自
總結
以上是生活随笔為你收集整理的SpringIOC、DI、AOP、MVC总结、时序图的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中国长租公寓市场白皮书
- 下一篇: 进击的新势力·95后短视频冲浪与消费图鉴