控制反轉(zhuǎn)(IoC,Inversion of Control),是一個(gè)概念,是一種思想。指將傳統(tǒng)上由程序代 碼直接操控的對(duì)象調(diào)用權(quán)交給容器,通過(guò)容器來(lái)實(shí)現(xiàn)對(duì)象的裝配和管理。控制反轉(zhuǎn)就是對(duì)對(duì)象控制權(quán)的轉(zhuǎn)移,從程序代碼本身反轉(zhuǎn)到了外部容器。通過(guò)容器實(shí)現(xiàn)對(duì)象的裝配和管理。
IoC 是一個(gè)概念,是一種思想,其實(shí)現(xiàn)方式多種多樣。當(dāng)前比較流行的實(shí)現(xiàn)方式是依賴(lài) 注入。應(yīng)用廣泛。
依賴(lài):classA 類(lèi)中含有 classB 的實(shí)例,在 classA 中調(diào)用 classB 的方法完成功能,即 classA 對(duì) classB 有依賴(lài)。
● 依賴(lài)查找:DL ( Dependency Lookup ), 容器提供回調(diào)接口和上下文環(huán)境給組件。
● 依賴(lài)注入:DI (Dependency Injection),程序代碼不做定位查詢(xún),這些工作由容器自 行完成。
依賴(lài)注入 DI 是指程序運(yùn)行過(guò)程中,若需要調(diào)用另一個(gè)對(duì)象協(xié)助時(shí),無(wú)須在代碼中創(chuàng)建被調(diào)用者,而是依賴(lài)于外部容器,由外部容器創(chuàng)建后傳遞給程序。
Spring的依賴(lài)注入對(duì)調(diào)用者與被調(diào)用者幾乎沒(méi)有任何要求,完全支持 POJO 之間依賴(lài)關(guān)系的管理。
依賴(lài)注入是目前最優(yōu)秀的解耦方式。依賴(lài)注入讓 Spring 的 Bean 之間以配置文件的方式 組織在一起,而不是以硬編碼的方式耦合在一起的。
Spring框架使用依賴(lài)注入(DI)實(shí)現(xiàn)IoC。
Spring容器是一個(gè)超級(jí)大工廠(chǎng),負(fù)責(zé)創(chuàng)建、管理所有的Java對(duì)象,這些Java對(duì)象被稱(chēng)為Bean。Spring容器管理著容器中Bean之間的依賴(lài)關(guān)系,Spring使用“依賴(lài)注入”的方式來(lái)管理Bean之間的依賴(lài)關(guān)系。使用IoC實(shí)現(xiàn)對(duì)象之間的解耦和。
開(kāi)發(fā)工具:idea2017以上
依賴(lài)管理:maven3以上
jdk:1.8以上
需要設(shè)置maven本機(jī)倉(cāng)庫(kù):