spring的ioc控制反轉
阿新 • • 發佈:2018-12-15
控制反轉(ioc)和依賴注入
控制反轉(Inversion of Control,縮寫為IoC),是面向物件程式設計中的一種設計原則,可以用來減低計算機程式碼之間的耦合度。其中最常見的方式叫做依賴注入(Dependency Injection,簡稱DI),通過控制反轉,物件在被建立的時候,由一個調控系統內所有物件的外界實體,將其所依賴的物件的引用傳遞給它。也可以說,依賴被注入到物件中。
控制反轉:在類a中使用類b的物件時,不再進行new操作,而是通過第三方(spring)將類b的物件傳入給類a
依賴注入:是實現控制反轉的手段
注入的類需要存在繼承或者實現的關係,一般使用介面來實現,很多面試官成為面向介面程式設計
一下的原理,用介面來解開類與類之間的耦合,不過仍與介面有關係
public class SystemService{
private SystemDao;
}
public interface SystemDao{
......
}
public class SystemDaoImpl implements SystemDAO{
......
}
三種依賴注入方式:
1。訪問器注入(重點)
被注入的類需要有繼承或者實現關係
被注入類中需要使用父類或者介面來宣告物件,同時為這個物件至少設定set方法
還是上面的這個例子:
public class SystemService{ private SystemDao; set 和get方法; }
public interface SystemDao{
......
}
public class SystemDaoImpl implements SystemDAO{
......
}
在spring中通過配置完成注入
相關程式碼如下:
aaaaa
dao1和 dao2分別是dao中的實現類,通過配置檔案進行依賴注入的控制,減少了service與dao之間的耦合,當需要更換實現類時,無需更改service 和dao的程式碼,只需改動ref的配置即可
2 。構造器注入
3 。 介面注入(spring不支援,瞭解)
spring還提供了註解方式的注入 [email protected] 自動注入