??????點進來你就是我的人了
博主主頁:??????戳一戳,歡迎大佬指點!歡迎志同道合的朋友一起加油喔??????
目錄
1. Spring框架是什么?
2. IOC 容器是什么?
2.1 計算機中的容器
2.2 IOC 容器
2.3 到底什么是控制反轉呢?
3. 總結 什么是IOC???什么是DI?
4. IOC和DI有什么區(qū)別? (面試題)
5. Spring 是什么?如何理解 Spring?(面試題)
1. Spring框架是什么?
我們通常所說的 Spring 指的是 Spring Framework(Spring 框架),它是?個開源框架,有著活躍?龐?的社區(qū),這就是它之所以能?久不衰的原因。Spring ?持?泛的應?場景,它可以讓 Java 企業(yè)級的應?程序開發(fā)起來更簡單。
??句話概括 Spring:Spring 是包含了眾多工具方法的 IoC 容器。
2. IOC 容器是什么?
2.1 計算機中的容器
我們先來談談容器是什么,在計算機中的容器,其實和我們?nèi)粘Kf的容器其實是一一回事。
在日常生活中,
書架的可以用來放書、衣柜可以用來放衣服、瓶子可以用來裝水,它們都是容器,而容器就是可以用來容納東西的東西。
在計算機領域中,
List / Map 是一個用來存儲數(shù)據(jù)的容器,Tomcat 是一個放 Web 程序的容器。
2.2 IOC 容器
IOC(Inversion of Control,控制反轉)是一種設計原則,而IOC容器則是實現(xiàn)這個原則的工具或框架。
控制反轉(IOC)是一種編程思想,它的主要思想是將對象的創(chuàng)建、配置和控制權交由一個專門的組件來完成,而不是由對象本身或使用對象的客戶端完成。這個專門的組件在Spring中就是所謂的IOC容器。
IOC容器是Spring框架的核心組成部分,它負責實現(xiàn)控制反轉原則。IOC容器負責創(chuàng)建對象,解析和注入依賴,管理對象的生命周期,以及實現(xiàn)對象之間的依賴關系。
簡單來說,IOC是一種理念或原則,而IOC容器則是實現(xiàn)這個原則的實體或工具。在Spring中,這個工具就是Spring框架自身。
2.3 到底什么是控制反轉呢?
如果我們用一種更通俗的比喻來解釋控制反轉,那就像是在一個餐廳里就餐。假設你是一個顧客(代碼),你想要一份意大利面(依賴的對象)。在沒有控制反轉的情況下,你需要自己到廚房(代碼中)去準備食材、烹飪、然后自己清理。你需要親自做這一切,而且要做得對。但是如果有一個服務員(IoC容器)在這個過程中幫助你,你只需要坐在桌子前,告訴服務員你想吃什么(聲明依賴),然后服務員會幫你準備,你就可以直接享用了。在這個過程中,你并不需要知道意大利面是如何準備的,也不需要自己去清理,你只需要享受你的餐點就可以了。
這就是控制反轉的核心概念:你不需要自己創(chuàng)建和管理你需要的對象,你只需要聲明你需要什么,然后容器(在這個例子中是服務員)會負責創(chuàng)建和管理這些對象,然后將它們提供給你。這樣,你的代碼就更專注于實現(xiàn)業(yè)務邏輯,而不是處理創(chuàng)建和管理對象的繁瑣細節(jié)。
3. 總結 什么是IOC???什么是DI?
IOC是"Inversion of Control"(控制反轉)的縮寫,是面向對象編程中的一種設計原則。這個原因在于,傳統(tǒng)的程序設計流程是由主函數(shù)調(diào)用子函數(shù),而在IOC的設計原則中,這個流程被反轉過來,主函數(shù)變成被動,等待子函數(shù)的調(diào)用。
在Spring框架中,IOC主要表現(xiàn)為Dependency Injection(DI,依賴注入)。也就是說,當一個類需要使用另一個類的方法時,不再是自己創(chuàng)建或者查找,而是通過Spring框架來注入需要的類。這樣做的好處是降低了類與類之間的耦合性,使得程序更加靈活,代碼更易于測試和維護。
舉個例子,假設有一個類A,它需要使用類B的方法。在傳統(tǒng)的設計中,A需要自己創(chuàng)建B的實例,或者通過某種方式查找到B的實例。但在Spring的IOC原則下,A不需要知道B的任何信息,只需要聲明自己需要使用B,Spring框架就會自動將B的實例注入到A中,A直接使用就可以了。
Spring的IOC容器是實現(xiàn)這個原則的核心,它負責創(chuàng)建對象,維護對象之間的關系,以及管理對象的生命周期。當你需要一個對象的時候,只需要向容器請求,容器就會返回一個已經(jīng)配置好的對象。
DI是"Dependency Injection"的縮寫,中文通常翻譯為"依賴注入"。它是Spring框架中實現(xiàn)"控制反轉"(IOC)原則的一種方式。
依賴注入的基本理念是,一個類不應該自己去創(chuàng)建或查找它所依賴的其他類的實例,而應該由外部(在Spring框架中,通常是Spring的IOC容器)負責這些實例的創(chuàng)建和注入。這樣可以將類與類之間的耦合性降低到最低,使得代碼更加靈活,更易于測試和維護。
舉個例子,假設有一個類A,它需要使用類B的方法。在傳統(tǒng)的設計中,A需要自己創(chuàng)建B的實例,或者通過某種方式查找到B的實例。但在依賴注入的設計中,A只需要聲明自己需要使用B,Spring框架就會自動將B的實例注入到A中,A直接使用就可以了。
Spring中主要有三種依賴注入的方式:
Setter注入:通過調(diào)用對象的setter方法來注入依賴。
構造方法注入:通過構造器來注入依賴。
屬性注入:直接將依賴注入到字段中。
4. IOC和DI有什么區(qū)別? (面試題)
-
IOC(Inversion of Control,控制反轉)是一種設計思想,主要是指創(chuàng)建對象和管理對象之間的依賴關系的控制權由代碼本身反轉給了容器。IOC是一種更高層次的概念,是一種編程的思想和方法論,可以通過DI,Service Locator模式等方式實現(xiàn)。其主要目的是解耦,將業(yè)務代碼從環(huán)境代碼中解耦,使業(yè)務代碼獨立于特定的環(huán)境和平臺。
-
DI(Dependency Injection,依賴注入)是實現(xiàn)IOC的一種具體方式,是IOC的一個實現(xiàn)手段。通過DI,容器負責將依賴的對象實例注入到需要它的對象中。對象只需通過聲明需要依賴對象,而不必親自創(chuàng)建或查找。這樣的話,代碼就不再依賴于特定的類實例,而是依賴于接口或抽象類,從而提高了代碼的模塊化和可測試性。
簡而言之,IOC是一種設計思想,DI是實現(xiàn)IOC的一種方法。在Spring框架中,DI是IOC的主要實現(xiàn)方式。
5. Spring 是什么?如何理解 Spring?(面試題)
Spring 是包含了眾多?具?法的 IoC 容器。Spring 是?個 IoC(控制反轉)容器,說的是對象的創(chuàng)建和銷毀的權利都交給Spring來管理了,它本身又具備了存儲對象和獲取對象的能力。?
Spring兩個最核心的功能:可以將對象(Bean)存入到 Spring (容器)中,也可以從 Spring(容器) 中讀取到對象(Bean),以供其他業(yè)務使用。文章來源:http://www.zghlxwxcb.cn/news/detail-472461.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-472461.html
到了這里,關于【初識Spring框架】的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!