spring依賴注入的理解


首先說下什么是依賴

依賴的解釋:依賴是一種關系,一個類依賴另一個類,也就是一個類中有另一個類的引用,class Person中有class Car的引用那就叫 Person對Car有一個依賴。

//Person對Car有一個依賴
class Person{
     Car car;
     public Person(){
         car=new Car();
     }
     
}

再來談談什么是依賴注入

我們一開始學java對於上面的構造方法里面我們如何給car引用對象呢?我們的第一反應是啥,new 對象啊!,這也就是我們的習慣思維,調用者來創建被調用者的實例,而在依賴注入的思想里,我們不是直接new 對象了,而是通過傳遞外部引用,也就是通過外部注入依賴。

//外部注入依賴
class Person{
     Car car;
     public Person(Car car){
         this.car=car;
     }
     
}

這里面調用者不在控制car的實例的實現了所以叫控制反轉IoC,inversion of control)實際上和依賴注入DI,DependencyInjection)是一個意思。

那么我們這么做有啥意義呢?new 對象不是挺好的嗎?

我來好好解釋為啥要依賴注入,比如上面的person類,如果我的Person類中的car從本來的奇瑞qq變大奔,我是不是要再改Person類中的構造方法,是不是賊麻煩,這里面person和car緊密的耦合在一起,我們也就寫死了car在Person類中而且new 對象過程也很慢。而通過外部注入依賴的方式我不需要再改Person類中的代碼,我寫我的大奔代碼 傳**入大奔就行了,這也就說明了為啥要依賴注入,因為可以解耦

依賴注入主要作用: 依賴注入能夠讓相互協作的軟件組件保持松散耦合

Spring中依賴注入

  • 依賴注入DI,DependencyInjection),也叫控制反轉IoC,inversion of control)是Spring框架的核心機制,相當於心臟對於人的重要性,只有真正理解這些核心的功能,才有能力使用spring框架。

  • Spring中的依賴注入就是上面說的外部,實例不在由程序員實例化,而是通過spring容器幫我們new指定實例並且將實例注入到需要該對象的類。 我們不用關心Car的變化,實例之間的依賴關系由IOC容器負責了,等待Spring依賴注入。


  • 未完,下次繼續寫!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM