十分鐘理解springIOC的好處

Spring IOC自動注入

它的好處,是是一個超級大工廠,我們不用再管理對象,實際上,IOC分爲兩個部分:
在這裏插入圖片描述`
其中

  • Dependency Lookup指的是依賴查找:他是當前軟件實體主動去某個服務註冊地查找其依賴的那些服務。
  • Dependency Injection指的是依賴注入:他是當前軟件實體被動接受其他組件被IOc容器注入。

他的好處,舉個例子,我們平常寫的代碼有三個部分:

  • controller
  • service
  • dao
    他們之間的依賴關係是
    在這裏插入圖片描述

我們看一下,如果沒有IOC,我們該如何實現ControllerA

// 先構造DaoA,DaoB,DaoC,DaoD
DaoA da = new DaoA();
DaoB db = new DaoB();
DaoC dc = new DaoC();
Daod dd = new DaoD();

// 構造Service A,Service B
ServiceA sa = new ServiceA(da, db);
ServiceB sb = new ServiceB(dc, dd);

// 構造ControllerA
ControllerA ca = new ControllerA(sa, sb);

看到了嗎,構建一個Controller類,需要提前new一系列相關的對象,這樣實在太麻煩了,在spring boot中是怎麼做的?

@Controller
class ControllerA
{
    @Autowired
    ServiceA sa;
    @Autowired
    ServiceA sb;
}
@Service
class ServiceA
{
    @Autowired
    DaoA da;
    @Autowired
    DaoB db;
}
@Service
class ServiceA
{
    @Autowired
    DaoC dc;
    @Autowired
    DaoD dd;
}

看起來似乎沒有簡便多少,但實際上,對比一下,你會發現。每個類在構造的時候,只需將和它相關的類注入即可,並不需要考慮相關類的如何創建。比如,ControllerA只需要考慮ServiceA,ServiceA就好,至於這兩個類怎麼構建的,不用管,SPringIOC會替你管理。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章