1. 程式人生 > >spring的ioc控制反轉

spring的ioc控制反轉

控制反轉(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] 自動注入