控制反轉:
在編程中,當我們用到一個對象時,首先需要主動創建它,但是在大型項目中,大家分工合作,也許我們要用到的對象對應的類還沒有被編寫出來,我們肯定沒辦法new出來,這個時候就有了Spring框架,對象交給Spring來創建(我們不關心有沒有能力關心是否已經有了對應的類和Spring是否能夠創建我們需要的對象),我們直接從Spring容器中獲取對象使用即可,此前對象是由我們主動創建的,我們具有控制權,但使用Spring框架之后我們將創建對象的權力交給Spring,也就意味着我們對對象的控制權反轉給了Spring,這就是控制反轉。
控制未反轉:由我們(開發者)來控制對象的創建。
控制反轉:我們將創建對象的控制權交給了Spring,由Spring來控制對象的創建。
依賴注入:
當我們需要用到一個對象的時候,從Spring容器中獲取,這對於Spring來講,就是將程序所依賴的對象注入到程序中,這就是所謂的依賴注入。
在Java中依賴注入有三種實現方式:
- 構造器注入
- Setter方法注入
- 接口注入