1. 程式人生 > >Spring之IOC基本用法

Spring之IOC基本用法

宣告:小弟最近正在學習spring下面內容是自己的一些理解,如果有不對的地方請及時留言告知,以免誤導了後面的spring學習者,謝謝大家配合。
什麼是spring:
Spring是輕量級開源框架,以IOC(控制反轉)和AOP(面向切面程式設計)為核心。
Spring的出現代替了ejb的臃腫、低效、脫離現實

是什麼:
簡單點明:

IOC控制反轉:從容器的角度來說的,就是建立例項的工作交給容器管理。

DI依賴注入:從需要例項化物件的角度來說是建立物件例項時,為這個物件注入 屬性值或其它物件例項。

它們是spring核心思想的不同方面的描述分別站在了容器和物件的角度來說明同 一件事。
有什麼用:

Spring的IOC容器降低了業務邏輯物件替換的複雜性,提高了元件之間的解耦。
依賴注入是一種優秀的解耦方式

如何用:
設值注入:
設值注入是指IOC容器使用成員變數的setter方法來注入被依賴的物件。,這 種方式被大量使用。
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述

構造注入:
通過構造方法來給物件注入值

這裡寫圖片描述
這裡寫圖片描述
兩種注入方式的對比:
設值注入的優點:
1.在某些成員變數可選的情況下,多引數的構造器顯得笨重
2.對於複雜的依賴關係,如果採用構造注入,會導致構造器過於臃腫,難以閱讀
3.與傳統的javabean寫法更相似,程式開發人員更容易理解。,通過setter方式設定依 賴關係顯得更加直接自然。
構造注入的優點:
1.構造注入可以在構造器中決定依賴關係的注入順序,優先依賴的優先注入。
2.對於依賴關係無需變化的bean,構造器注入更有用處。因為沒有setter方法,所有 的依賴關係全部在構造器內設定
3.依賴關係只能在構造器中設定,則只有元件的建立者才能改變組價的依賴關係。對元件的呼叫而言,元件內部的依賴關係更加透明,更符合高內聚的原則

建議採用設值注入為主,構造注入為輔的注入策略。對依賴關係無需變化的注入,儘量採用構造注入,而其他依賴關係的注入,則考慮採用設值注入