Spring IOC設計原理和原始碼學習-01
阿新 • • 發佈:2021-02-19
整體認識
-
Spring的目標是使用者感到簡單,降低負載和降低框架的入侵性
-
怎麼實現這兩個目標呢?
方法就是IOC和AOP
IOC,容器技術方案就是很好的降低了框架的入侵性,讓應用不依賴於Spring的api。
Java EE的服務都被抽象到IOC中,並通過AOP進行有效的封裝。由容器來管理這些複雜的依賴關係而不是開發者。
這裡為什麼說通過AOP進行有效的封裝,是因為將散落在專案各處物件的建立和引用賦值都集中到IOC容器中進行管理,這也是AOP的概念,將某些分散操作集合起來進行封裝,增加程式碼的複用性。 -
何為依賴關係,通俗一點就是類與類之間的關係,你在某個類中建立了另一個類的例項,那麼就建立了兩個類之間的關係。有了容器技術,這兩者之間的關係都交給了IOC管理,這就是IOC的精華所在。
問題
通過反問來牽引出知識點,學習中不斷的發問,不斷的丟擲問題。
1. IOC是怎樣將依賴關係放入容器中的?
各個模組的依賴關係通過簡單的配置檔案進行描述,也就是說將依賴關係有檔案檔案的形式記錄下來,將依賴資訊集中化展示和記錄,同時也是配置檔案,這樣更加明瞭的瞭解各個模組之間的依賴關係。
Spring致力於提供優秀方案的整合平臺,也就是說很容易的整合第三方元件,而不是緊緊依賴於Spring提供的API依賴。文成POJJO開發時所必須使用的就是IOC,其他api沒有這種要求,靈活性好。
上圖是這麼說的,依賴注入,但是我不是很理解。調控系統就是IOC容器。
根據字面意思就是,當我們要建立一個需要的類例項時,創建出來的例項與依賴進行繫結,我們就能使用該例項了。顯示中應用如下:
@Resource
private PasswordEncoder passwordEncoder;
@Resource
private UserService userService;
2. 什麼是控制反轉? 什麼是依賴注入?
依賴注入就是將IOC管理的實體引用於使用者建立的例項進行繫結,讓使用者建立的例項擁有使用價值。
依賴關係管理
- 通過可讀文字完成配置
- 通過可是化工具對這些資訊進行管理和瀏覽