Ioc即:Inversion of Control 控制反轉(zhuǎn)。
在Ioc模式下,組件控制權(quán)發(fā)生了發(fā)轉(zhuǎn),從應(yīng)用程序轉(zhuǎn)移到了Ioc容器中。
DI:Dependedcy Injection 依賴注入,將組建的配置和使用分離,并用容器來(lái)管理組件。
依賴注入的三個(gè)方式:
1.構(gòu)造方法注入
Public class BookService {
private BookDao bookDao;
public BookService(BookDao bookDao)
{
this.bookDao =bookDao;
}
}
2.設(shè)置屬性注入
利用set方法
3.接口注入
n 工廠模式的升華
n 可以把IoC看作是一個(gè)大工廠,只不過(guò)這個(gè)大工廠里要生成的對(duì)象都是在XML文件中給出定義的,然后利用Java 的“反射”編程,根據(jù)XML中給出的類名生成相應(yīng)的對(duì)象。
n 從實(shí)現(xiàn)來(lái)看,IoC是把以前在工廠方法里寫(xiě)死的對(duì)象生成代碼,改變?yōu)橛?/span>XML文件來(lái)定義,也就是把工廠和對(duì)象生成這兩者獨(dú)立分隔開(kāi)來(lái),目的就是提高靈活性和可維護(hù)性。
n IoC中最基本的Java技術(shù)就是“反射”編程。反射又是一個(gè)生澀的名詞,通俗的說(shuō)反射就是根據(jù)給出的類名(字符串)來(lái)生成對(duì)象。這種編程方式可以讓對(duì)象在生成時(shí)才決定要生成哪一種對(duì)象。