IoC和AOP

IoC和AOP

1、IoC

  • 什麼是IoC:控制反轉(Inversion of Control),又稱爲依賴注入(Dependency Injection),把建立對象的控制權交出去,從主動建立對象變爲被動接受對象。具體的說就是,在傳統的程序設計中,若是在web層要調用service層的方法,就必須在web層主動建立service層實現類對象,可是在spring中,建立對象的工做再也不由調用者主動完成,而是把建立對象的控制權交給spring的bean工廠, 調用者只負責接收這個對象。web

  • IoC的做用:實現解耦,更準確的說是實現了編譯期解耦,還存在運行期解耦。實現運行期解耦能夠引入配置文件對依賴對象的路徑進行配置。正則表達式

2、AOP

  • 什麼是AOP:面向切面編程(Aspect-Oriented Programming),把指定的邏輯代碼動態的切入到指定的位置上的編程思想。例如,在項目中有200個方法須要進行事務管理,或者200個方法須要日誌打印,若是傳統的方法,咱們可能要在這200個方法上分別加入對應的邏輯代碼,而若是須要調整那就要再修改200次,過於繁瑣。而若是利用AOP的思想,那就只須要把這些相同的代碼剝離出來,放到同一個類中進行集中管理。在運行時由spring容器動態切入這些代碼。
  • AOP的原理:經過動態代理的方式,在不影響原有功能的基礎上,對功能進行加強、控制
  • 常見的名詞
    • 切入點(PointCut):全部可以進行加強的方法,全部的切入點都會獲得通知,不一樣的切入點獲得的通知不一樣(根據正則表達式實現)
    • 通知(Advice):要給目標對象進行加強、控制的邏輯代碼
    • 切面(Aspect):切入點和通知的結合/共有功能的實現/被加強了的切入點方法
相關文章
相關標籤/搜索