spring控制反轉和依賴注入的區別?
概念:控制反轉(Inversion of Control,英文縮寫為IoC)是一個重要的面向對象編程的法則來削減計算機程序的耦合問題,也是輕量級的Spring框架的核心。
控制反轉一般分為兩種類型,依賴注入(Dependency Injection,簡稱DI)和依賴查找(Dependency Lookup)。依賴注入應用比較廣泛。
依賴注入:組件不做定位查詢,只提供普通的Java方法讓容器去決定依賴關系。
容器全權負責的組件的裝配,它會把符合依賴關系的對象通過JavaBean屬性或者構造函數傳遞給需要的對象。
通過JavaBean屬性注射依賴關系的做法稱為設值方法注入(Setter Injection);將依賴關系作為構造函數參數傳入的做法稱為構造子注入(Constructor Injection)
區別:控制反轉:創建對象實例的控制權從代碼控制剝離到IOC容器控制,實際就是你在xml文件控制,側重于原理。
依賴注入:創建對象實例時,為這個對象注入屬性值或其它對象實例,側重于實現。