spring ioc容器的設計與實現
1、什麼是ioc容器
前一篇文章說到裡spring ioc,什麼是ioc容器?本質上是spring ioc管理系統的乙個抽象,所有符合ioc特性的物件都被納入了進來,像容器一樣存放,所以對像依賴關係的管理交給裡ioc容器,解放裡對像依賴關係的管理與系統執行狀態的關聯性。
2、ioc的設計與實現
3、ioc容器的初始化ioc容器的初始化包含三個過程:
beandefinition的resource定位,由resourceloader通過統一的介面getresource獲取資源;
beandefinition的載入,這個過程就是將定義好的bean表示成ioc容器的內部資料結構,即beandefinition;
beandefinition的註冊,這個過程是通過beandefinitionregistry介面的實現,將beandefinition注入到乙個hashmap中,ioc就是通過hashmap持有bean定義的資料。
這裡需要注意的是,ioc容器的初始化不包括依賴注入。
4、ioc容器的依賴注入
初始化過程僅僅是在ioc容器中建立beandefinition的資料結構,並沒有建立bean之間的依賴關係。注意:依賴注入的過程是使用者第一次向ioc容器索要bean觸發的,當然,也可以通過lazy-init屬性來完成對bean的預例項化,
Spring實戰學習筆記(一)
跨站請求偽造 csrf 指 讓乙個使用者在惡意的web頁面上填寫資訊然後自動的將表單以攻擊受害者的身份提交到另外乙個應用上。防止csrf 應用在展現表單的時候生成乙個csrf token,並放到隱藏域中,然後將其臨時儲存起來,以便後續在伺服器上使用。在提交表單時,token將和其他的表單資料一起傳送...
Spring實戰 快取
提到快取,你能想到什麼?一級快取,二級快取,web快取,redis 你所能想到的各種包羅永珍存在的打著快取旗號存在的各種技術或者實現,無非都是宣揚快取技術的優勢就是快,無需反覆查詢等。當然,這裡要講的不是一級二級,也不是redis,而是spring的快取支援。當時基於工作上的業務場景,考慮需要用到快...
spring再學習(二) spring事務
與關係型資料庫一致,事務都遵循 acid 原則 spring支援程式設計式事務管理以及宣告式事務管理兩種方式。在spring框架,用註解開啟事務 transactional,當然事務有其特性 spring事務的傳播行為有7種 spring在事務中使用isolation來配置它 isolation r...